GIT分支合并命令之git-rebase

名称

git-rebase - 用于把一个分支的提交合并到当前分支。

概要

git rebase [-i | --interactive] [<options>] [--exec <cmd>]
	[--onto <newbase> | --keep-base] [<upstream> [<branch>]]
git rebase [-i | --interactive] [<options>] [--exec <cmd>] 
    [--onto <newbase>] --root [<branch>]
git rebase (--continue | --skip | --abort | --quit | --edit-todo | --show-current-patch)

描述

假定存在以下历史提交记录,并且当前分支为“topic”

          A---B---C topic
         /
    D---E---F---G master

从现在开始,以下两个命令之一的结果:

git rebase master
git rebase master topic

将会是

                  A'--B'--C' topic
                 /
    D---E---F---G master

**NOTE:**第二种形式是git rebase master + git checkout topic 的简写。

解决冲突

合并失败可能会阻止此过程自动完成,你必须处理这些失败的合并,并且执行git rebase --continue;另一个选择是用git rebase --skip绕过导致合并失败的提交。

rebase的过程中,也许会出现冲突(conflict)。在这种情况,Git会停止rebase并会让你去解决冲突;在解决完冲突后,用”git add“命令去更新这些内容的索引(index), 然后,你无需执行 git commit,只要执行:

$ git rebase --continue

这样git会继续应用(apply)余下的补丁。

在任何时候,可以用--abort参数来终止rebase的操作,并且分支会回到rebase开始前的状态。

$ git rebase --abort

拓展

Git-分支-变基

上一篇:Java中的合并与重组(下)


下一篇:Java中的合并与重组(上)