Git - 使用当前在我的工作目录中的文件修改旧提交

Git - Modify an old commit with the file currently in my working directory

所以我提交了一个错误的文件,这不是我最后一次提交(它是 HEAD~9)。我想用我当前在工作目录中的版本替换该文件。

我打算做一个 rebase 交互,但我意识到我需要先清理我的工作目录,其中包含我想替换 HEAD~9 中的旧版本的文件。

有类似的问题,但没有找到解决这种情况的答案。这种情况应该怎么处理?

听起来 interactive rebase 可以满足您的需求。您首先需要在 "temporary" 提交中提交文件。然后通过交互式变基你可以 fixup HEAD~9.

  1. git add <file>
  2. git commit -m 'fixup commit'
  3. git rebase -i HEAD~10
  4. 在编辑器中,直接在 HEAD~9 之后移动修复提交,并将其设置为 f for fixup
  5. 保存并关闭编辑器

A fixupsquash 但保留了被压缩到的提交的提交消息。如果 HEADHEAD~9 之间的任何提交也修改了该文件,那么在重放提交时您可能会遇到合并冲突。