分支是 Git 的 “killer feature”。 Git 鼓励用户多用分支。
生成新的分支:
git branch testing
切换到另一个分支:
git checkout testing
这两条命令可以合并成:
git checkout -b testing
显示分支图:
git log --oneline --decorate --graph --all
合并一个分支到主分支,比如我们有如下的分支:
我们要将 iss53 分支合并入master:
git checkout master
git merge iss53 # master 分支合并 iss53 分支做的变动。
git branch -d iss53
合并后:
如果合并时发生冲突,那么需要我们手动修改,解决冲突。解决之后再次 :
git commit
列出所有的分支:
git branch
git branch -v
git branch --merged
git branch --no-merged
强制删除一个分支,即使这个分支没有合并到其他的分支:
git branch -D testing
显示远程库的分支:
git ls-remote [remote]
git remote show [remote]
将本地分支推送到远程库。
git push
git push origin serverfix
建立一个本地分支来跟踪远程库的分支:
git checkout -b serverfix origin/serverfix
git checkout --track origin/serverfix
如果远程库中只有一个 serverfix,那么可以简单的写为:
git checkout serverfix
如果本地分支想换个名字,可以这样:
git checkout -b sf origin/serverfix
如果已经有了个本地分支,想让这个分支跟踪一个远程分支,那么可以这样:
git branch -u origin/serverfix
git branch --set-upstream-to origin/serverfix
将一个远程库的分支合并到当前分支。
git merge origin/serverfix
如果要查看本地分支都跟踪了哪些远程分支,可以:
git branch -vv
删除一个远程分支:
git push origin --delete serverfix
rebase 操作:
git checkout experiment
git rebase master
不要再远程仓库上执行rebase 。
每次pull 时自动执行个 rebase:
git config --global pull.rebase true