5最后一条记录_git rebase将多次commit合并为一条

概述

在项目进行多次迭代优化时会有多次commit记录, 而这几次记录完全可以当做一次commit, 这就会导致分支历史记录很混乱,如:

50b51bb73c07871d5958f7936638ae5e.png

在回退版本的时候难以选择,通常需要每条commit都要检查一遍, 这时候 rebase 功能就发挥出来了。

将多次commit合并为一条

现在把这4条合并为1条记录

d1e84b4bd2bf63963f8c17733112b9bb.png

操作步骤

1、-i 指定要合并的那一条记录的上一条 commitId

git rebase -i e88835de905ad396f61a0dc8c040a8ac8a34f3f8

或者使用数字的方式

git rebase -i HEAD~4

2、此时会进入 rebase 交互式终端

8d656a065925478ec29ace5ebccb28e9.png

这里有几个关键字要说下:

  • pick 使用这一次commit
  • squash/s 使用commit,但合并到以前的commit中
  • d 移除这一次提交

我们要把最后3次提交合并到第一条,所以将最后3个 pick 改成 s, 接着 wq保存退出。

7fec14875213cac30ec31fecb39b4b3f.png

接着会进入到另一个交互式终端,如果commit message 无异议可以直接 wq 保存退出,

835b65feda4e77d384ef2dbb06e2ab4f.png

为了便于大家理解,我将commit message修改了下

cbfb8235eeed5bcb7e3249c216884349.png

如果执行到这一步时想放弃之前rebase的操作,可以执行以下命令:

git rebase --abort

3、推送到远程仓库

git push --force

最后看看提交后的历史, 这下美观了吧。

06151ac1171afd61cef5131940e60971.png

版权声明:本文为weixin_39939904原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。