概述
在项目进行多次迭代优化时会有多次commit
记录, 而这几次记录完全可以当做一次commit, 这就会导致分支历史记录很混乱,如:
在回退版本的时候难以选择,通常需要每条commit都要检查一遍, 这时候 rebase
功能就发挥出来了。
将多次commit合并为一条
现在把这4条合并为1条记录
操作步骤
1、-i 指定要合并的那一条记录的上一条 commitId
git rebase -i e88835de905ad396f61a0dc8c040a8ac8a34f3f8
或者使用数字的方式
git rebase -i HEAD~4
2、此时会进入 rebase 交互式终端
这里有几个关键字要说下:
- pick 使用这一次commit
- squash/s 使用commit,但合并到以前的commit中
- d 移除这一次提交
我们要把最后3次提交合并到第一条,所以将最后3个 pick
改成 s
, 接着 wq
保存退出。
接着会进入到另一个交互式终端,如果commit message 无异议可以直接 wq
保存退出,
为了便于大家理解,我将commit message修改了下
如果执行到这一步时想放弃之前rebase
的操作,可以执行以下命令:
git rebase --abort
3、推送到远程仓库
git push --force
最后看看提交后的历史, 这下美观了吧。