跳转至

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分支上


Git 回退