在做项目的时候,我们可能为了更改某个bug,在自己的分支上进行过多次提交,如果不将这些提交压缩为一个,合入到master分支。那么在master分支上,就会看到你对某个bug的许多条提交记录,这样会使得master的提交历史不清晰。
我们的目的是想让master的提交历史清晰明了,一个bug【或功能】只有一个提交历史。这样维护起来就方便许多。
那么你在合并自己分支到master之前就需要进行提交历史压缩为一个,在rebase进去,这样在master的日志里面,就只会看到你的一条记录了。
在gitlab里看到有13条commit提交记录,所以需要用下面命令。
合并从当前HEAD开始到往前13个commits 为一个
假如你一共只有13次修改记录
git rebase -i HEAD~13
把此时的本地代码push到远端目标branch,一定要-f选项。
git push -f origin [your_remote_target_branch]
合同历史提交记录知识拓展
正常的多条历史记录合并如下
git rebase -i [start] [end]
上式表示,从start的commit开始(不包含start的commit)到end结束,这之间的所有commit合并成一条commit
比如通过git log看到的历史记录,想要压缩红框内的历史记录为一条。
命令:
$ git rebase -i fb25b03d4fe1e20d673c212e13aafc444da66eeb b56524bc3cb5a2f7a3fe3330bce5a8afb2929c58
- 通过vim的命令,修改第一个pick之后的所有pick为f,即可。保存退出
- 提交更改便可
git push -f origin [your_remote_target_branch]