小编典典

如何将更改的文件添加到 Git 中较旧的(不是最后一个)提交

all

在过去的一个小时里,我已经更改了几件事并逐步提交了它们,但我刚刚意识到我忘记在一些提交之前添加更改的文件。

日志如下所示:

GIT TidyUpRequests u:1 d:0> git log 
commit fc6734b6351f6c36a587dba6dbd9d5efa30c09ce 
Author: David Klein <> 
Date:   Tue Apr 27 09:43:55 2010 +0200

    The Main program now tests both Webservices at once

commit 8a2c6014c2b035e37aebd310a6393a1ecb39f463 
Author: David Klein <>
Date:   Tue Apr 27 09:43:27 2010 +0200

    ISBNDBQueryHandler now uses the XPath functions from XPath.fs too

commit 06a504e277fd98d97eed4dad22dfa5933d81451f 
Author: David Klein <> 
Date:   Tue Apr 27 09:30:34 2010 +0200

    AmazonQueryHandler now uses the XPath Helper functions defined in XPath.fs

commit a0865e28be35a3011d0b6091819ec32922dd2dd8 <--- changed file should go here
Author: David Klein <> 
Date:   Tue Apr 27 09:29:53 2010 +0200

    Factored out some common XPath Operations

有任何想法吗?


阅读 131

收藏
2022-03-06

共1个答案

小编典典

使用git rebase. 具体来说:

  1. 用于git stash存储您要添加的更改。
  2. 使用git rebase -i HEAD~10(或者无论你想看到多少次提交)。
  3. 通过将行a0865...首的单词更改为 来标记有问题的提交 ( ) 以进行编辑。不要删除其他行,因为这会删除提交。1pick``edit
  4. 保存 rebase 文件,git 将返回到 shell 并等待您修复该提交。
  5. 通过使用弹出存储git stash pop
  6. 使用 .添加您的文件git add <file>
  7. 用 .修改提交git commit --amend --no-edit
  8. 执行一个git rebase --continue将针对新提交重写其余提交的操作。
  9. 如果您标记了多个提交以进行编辑,请从第 2 步开始重复。

  1. 如果你正在使用,vim那么你必须敲击Insert键来编辑,然后Esc输入:wq保存文件,退出编辑器,然后应用更改。 

2022-03-06