修改一个不是以前提交的提交
我经常会有如下的工作stream程:
- 将更改提交给一组文件
- 将更改提交到不同的文件组
- 意识到我错过了属于第一次提交的一些更改
- 诅咒
我不能使用git commit --amend
因为它不是我需要改变的最近的提交。 在不碰第二个提交的情况下添加更改的最佳方法是什么?
你可以使用git rebase
来解决这个问题。 运行git rebase -i sha1~1
其中sha1是您想要更改的提交散列。 find您想要更改的提交,并用“编辑”replace“select”,如基本编辑器的注释中所述。 当你从那里继续时,你可以编辑提交。
请注意,这将改变该提交的sha1以及所有的孩子 – 换句话说,这将重写这一点的历史。 你可以打开这样的仓库,但是如果你没有推,那就不是什么大事了。
如果你没有推上游,你可以:
git format-patch -1 git reset --hard HEAD~1 //change git commit --amend git am patchname