GIT rebase讲解
对分支进行rebase
-
从master分支checkout出fork分支,并在master和fork上都进行了一些修改
-
现在fork分支想要及时的同步master分支上的修改,避免在已经失效的代码上继续工作
-
该过程总的提交树变化如下:
对一段commit进行整理(squash)
很多开源项目要求参与者在发起RP前对本次的commit进行squash,关联上该RP的issue编号,下面看下如何达到此目的:
-
首先我在fork分支上进行了随意的两次commit
-
然后使用
git rebase -i
命令进行整理命令格式:
git rebase -i <startpoint> <endpoint>
需要注意<startpoint> <endpoint>是左开右 闭,所以<startpoint>应该是你需要整理的commit的上一 次提交id。
git rebase -i e14ed9d^ 342889d
把除去第一行的其他行的pick命令修改为squash命令
然后按照相关开源项目要求编辑整理后的comment注释
-
最好查看提交记录确认提交历史已经改变
-
此时HEAD处于了游离状态,所以我们需要把fork分支的HEAD重置到最后的commit