url :Learn Git Branching
高级git
多次Rebase
最开始我先把bugFix分支先rebase到main上,之后再把c7合并到c6 ,之后就差合并为一个分支了,但是无论移动c7还是another分支都无法合并,都会在原地停留
后来根据提示最后再调整main分支,最后还是秒了
bash
git rebase side another
git rebase main bugFix
git branch -f main c7'
git rebase bugFix main
只有main分支切到另一个提交分支里时,才能带着上面的4个parents一起合并到bugFix中
选择 parent 提交记录
操作符 ^
与 ~
符一样,后面也可以跟一个数字。
但是该操作符后面的数字与 ~
后面的不同,并不是用来指定向上返回几代,而是指定合并提交记录的某个 parent 提交。还记得前面提到过的一个合并提交有两个 parent 提交吧,所以遇到这样的节点时该选择哪条路径就不是很清晰了。
Git 默认选择合并提交的"第一个" parent 提交,在操作符 ^
后跟一个数字可以改变这一默认行为。
bash
git checkout HEAD~
git checkout HEAD^2
git checkout HEAD~2
//等同于 ,支持链式操作
git checkout HEAD~^2~2