修改不是先前提交的提交

时间:2010-10-13 18:25:53

标签: git

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

  1. 提交对一组文件的更改
  2. 将更改提交到其他文件组
  3. 意识到我错过了第一次提交中的一些更改
  4. 诅咒
  5. 我无法使用git commit --amend,因为它不是我需要更改的最新提交。将更改添加到第一次提交而不触及第二次提交的最佳方法是什么?

1 个答案:

答案 0 :(得分:173)

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

请注意,这将更改该提交的sha1以及所有子项 - 换句话说,这会从该点向前重写历史记录。你可以破坏存储库这样做,但是如果你没有推动它,那就不是什么大不了的了。