leen leen - 1 year ago 133
Git Question

Howto add a changed file to an older (not last) commit in Git

I changed several things over the last hour and committed them step by step. But I just realized I've forgot to add a changed file some commits ago.

The Log looks like this:

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

Any ideas? :)

Answer Source

Use git rebase. Specifically:

  1. Use git rebase -i HEAD~10 (or whatever you need to see far enough back).
  2. Mark the commit in question (a0865...) for edit.
  3. Save the rebase file, and git will drop back to the shell and wait for you to fix that commit.
  4. Add your file with git add.
  5. Amend the commit with git commit --amend.
  6. Do a git rebase --continue which will rewrite the rest of your commits against the new one.
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download