1. 概述
在使用 Git 作为版本控制的时候,我们可能会由于各种各样的原因提交了许多临时的 commit,而这些 commit 拼接起来才是完整的任务。那么我们为了避免太多的 commit 而造成版本控制的混乱,通常我们推荐将这些 commit 合并成一个。
2. 合并多个Commit
2.1. 准备工作,编辑文件,提交3次commit
$ vi README.md
$ git add README.md
$ git commit README.md -m 'aa commit'
$ vi README.md
$ git add README.md
$ git commit README.md -m 'bb commit'
$ vi README.md
$ git add README.md
$ git commit README.md -m 'cc commit'
2.2. 查看git日志,执行rebase,合并commit
$ git log
$ git rebase -i 8a904fcb0ed8ccce2cc2f5877dc8596aa3a1553c




2.3. 执行push,将本地commit提交到仓库
$ git push
2.4. 注意事项
- rebase操作只能在本地仓库完成,如果要合并远程仓库的commit,可能会遇到问题,请慎重操作。
# 可以尝试push --force
$ git add .
$ git commit --amend --no-edit
$ git push --force
- 如果这个过程中有操作错误,可以使用git rebase --abort来撤销修改,回到没有开始操作合并之前的状态。
$ git rebase --abort
3. 参考
- 合并多个Commit
https://www.jianshu.com/p/964de879904a
网友评论