名称
git-rebase - 在另一个分支的最新提交记录上重新commit
摘要(简化版)
git rebase [--onto <newbase>] [<upstream> [<branch>]]
git rebase --continue | --skip | --abort
介绍
如果指定<branch> ,git rebase 在做任何其他操作前会先switch到<branch> ,如果不指定<branch> ,会留在git的当前分支
所有在<branch> 分支commit造成的改动 且 没有在<upstream> 分支commit的 会暂时存放到一个临时区域
如果有--onto 命令, 当前分支会重置到<newBase> 分支,如果没有,则会重置到<upstream> 分支,等同于git reset --hard <upstream> (or <newbase>) 命令
在临时区域存放的改动会一个一个按顺序"回放"在当前分支上
在"回放"的过程中,会有合并失败的问题,必须解决冲突然后git rebase --continue ,或者选择跳过这个冲突git rebase --skip ,撤销rebase用git rebase --abort
A---B---C topic
/
D---E---F---G master
比如分支状态如图,当前分支是topic:
git rebase master
git rebase master topic
以上命令都可以产生这样的效果
A'--B'--C' topic
/
D---E---F---G master
首先topic提交的A B C都会放在临时区(.git/rebase-apply),然后指向master最新提交的地方,开始回放 git-rebase文档
|