1.1 变基提交
1.1.1 git rebase 命令是用来改变一串提交是以什么为基础的。
比如,有两个分支正在开发中,最初,topic分支是从master分支的提交B处开始的,在此期间,master分支已经进展到提交E。
可以改写提交让它们基于提交E而不是B,这样就相当于在master分支最新的基础上分出的分支进行开发。
git checkout topic
git rebase master
1.1.2 git rebase --onto 可以将一条分支上的开发线整个移植到完全不同的分支上。
比如已经在feature上开发了一个新功能,在提交P和Q中,是基于maint分支的。要把feature分支上的提交P和Q从maint分支整体迁移到master分支:
git rebase --onto master maint^ feature
变基操作一次只能迁移一个提交,从各自原始提交位置迁移到新的提交基础。因此,每个移动的提交都可能有冲突需要解决。
举例:
toney@sw2:~/work/project/dragon/core/code/customer/cus_dlinkg2$ git branch
* AAA
master
master_dragon
toney@sw2:~/work/project/dragon/core/code/customer/cus_dlinkg2$ git log