小步提交是敏捷中非常推荐的开发实践,通过小步提交我们可以
- 让我们代码的每一个变更都有迹可循
- 方便回退
可是人无完人,如果发现曾经的一个commit内容不完整,怎么办呢?增加一个新的commit可以将代码修改为正确的,但是历史上的commit依然是有问题的,有人需要使用这个commit的内容时,如果仅仅使用历史上的commit就会出现问题,最好的方式仍然是直接修改历史commit,下面就讲一下如何修改历史commit。
整体思路是
- 先将代码回退到需要修改的commit
- 修改代码,将修改内容合入到需要修改的commit
- 将后续修改内容rebase回来
涉及如下几个命令
git rebase -i Head~2
git add xxx
git commit --amend
git rebase --continue
参考
https://git-scm.com/docs/git-rebase
https://git-scm.com/docs/git-commit