Git
Git branching¶
Git merge¶
merge即将另一个分支的内容合并到本分支上,根据是否有冲突,有两种结果
- 没有冲突,直接将当前分支的指针挪到另一个分支上,即
fast-forward
- 有冲突,会创建一个新的snapshot,并将当前分支指针指上去
如下图展示的是没有冲突的例子,执行如下命令,将hotfix
分支merge到master
分支上
git checkout master
git merge hotfix
下图是有冲突的合并,将iss53
合并到master
分支,出现冲突,创建新的snapshot
Git rebase¶
变基即将一个分支的改动挪动到另一个分支的基础上 With the rebase command, you can take all the changes that were committed on one branch and replay them on a different branch
如下图
执行以下命令
git checkout experiment
git rebase master
所得结果如下
此后再进行合并
git checkout master
git merge experiment
rebase还有--onto
选项,适用情况如下
执行
git rebase --onto master server client
效果如下
即将client
分支从server
分支发散出来的部分,replay到master
分支上