修改不是以前提交的提交

我经常会有如下的工作流程:

  1. 将更改提交到一组文件
  2. 将更改提交到不同的文件组
  3. 意识到我错过了属于第一次提交的一些更改
  4. 诅咒

我不能使用 git commit --amend,因为它不是我需要更改的最新提交。向第一次提交的 而不碰第二个?添加更改的最佳方法是什么

87270 次浏览

您可以使用 git rebase来解决这个问题。运行 git rebase -i sha1~1,其中 sha1是要更改的提交散列。找到您想要更改的提交,并将“ pick”替换为“ edit”,如 rebase 编辑器的注释中所述。当您从那里继续时,您可以编辑该提交。

注意,这将改变提交的 sha1和所有子提交的 sha1——换句话说,这将从那一点开始重写历史。您可以通过这种方式破坏存储库,但是如果您没有进行推送,那么这并不是什么大问题。