Posted by 撒得一地 on 2016年4月21日 in
杂谈
Git的基本命令
git init
git remote add <远程仓库别名> git@github.com:username/reponame.git
|
git clone git@github.com:username/reponame.git
git clone https://github.com/username/reponame.git
|
git branch
git branch -a
git branch -D <branch_name>
|
git checkout -b <new_branch> <exist_branch>
git checkout <exist_branch>
|
git log
git log --oneline
git log <branch>
git log <file_name>
|
git fetch
git pull origin
git pull
git pull origin next
git pull --rebase
|
git push origin
git push origin -f
git push origin test:master
|
git merge <branch>
git merge --squash
A---B---C topic
/ \
D---E---F---G---H master
注意,关于git merge只有看git log,能看到merge进来的分支上的commit,
但是实际上对于当前分支来讲,也就只有一个合并的commit而已,就是H。
要想看不到A,B,C,可以用 --squash
|
git cherry-pick <commit>
fix conflict
git add -A
git commit -am "comments"
git rebase <branch>
fix conflict
git add -A
git rebase --continue
|
git reset --hard
git reset --soft
git reset --mixed
注意:理解working directory, index, HEAD区别。index指已经git add过的文件
|
git diff
git diff <commit>
git diff <branch_a> <branch_b>
|
git stash -a
git stash pop
|
git tag -a tag_name -m "tag descprition"
git tag -d tag_name
git push origin tag_name
|
Git的基本概念
-
分清本地分支和远程分支。 所谓远程分支其实也是拷贝到本地的,并且每次得fetch了才能更新,一般在前面加上了origin/
-
四个重要的文件或目录:
HEAD
及 index
文件,objects
及 refs
目录。这些是 Git 的核心部分。objects
目录存储所有数据内容,refs
目录存储指向数据 (分支) 的提交对象的指针,HEAD
文件指向当前分支,index
文件保存了暂存区域信息。
Git的其他方面
gitignore模板
多个git账号如何配置
-
生成了多个ssh key
ssh-keygen -t rsa -C "new email"
-
配置.ssh/config文件
Host github.com
HostName github.com
User name1
IdentityFile ~/.ssh/id_rsa_first
Host domain_name
HostName domain_name
User name2
IdentityFile ~/.ssh/id_rsa_second
|
原文地址:
https://blog.huachao.me/2015/4/git%E4%B8%80%E7%AB%99%E5%BC%8F/