名称
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