I am trying to change a commit that is 39 commits old (there is 39 commits ahead of this one). I only need to change a few lines in only one file.
Here's what I have done thanks to this question:
git rebase --interactive e0ea83ac7c68df747705e3f39864cd4931416ae4^
I wrote edit
instead of pick to the line next to this commit, inputed 'Control+X' on nano, typed "Y", then enter, and I got:
⭑ shideneyu project/nuddz/public(master) ✔»git rebase --interactive e0ea83ac7c68df747705e3f39864cd4931416ae4^ [19:02:01]
Stopped at e0ea83a... Migrated every Reponse + ProvisionalReponse data to Answer
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
Here is the problem: I cannot make the necessary changes since the version of the file is already too recent. The file that I got under my eyes is not the one that I had when I commited that commit. Indeed, that file under my eyes is the same than the most recent commit !
Maybe that there is an hint here, when I do git log, here is what I got:
⭑ shideneyu ~/project/nuddz(02b5f2c) ✔»git log
commit 02b5f2c9c4987d433329b172c9cda28bf74d9db8
Author: sidney <shiden**@gmail.com>
Date: Mon May 12 15:20:01 2014 +0200
Migrated every Reponse + ProvisionalReponse data to Answer
commit 75468d2a2dba8d06540781b6a13783610130eed8
Author: Alexis <*****@yahoo.fr>
Date: Mon May 26 10:44:40 2014 +0200
Moved debugger gem in developpment
commit 2ff563c63ce395f72b1f9acb4a0de7c0d64fb204
Author: Alexis <*****@yahoo.fr>
Date: Fri May 23 19:30:31 2014 +0200
Assets precompile before Heroku push
[...]
I truncated in purpose (too many records). I don't think that it is normal. The chronology (12 may is the most recent? How come the 26 May exists then if I want to change a commit that existed a dozen days ago if the recent changes exist?) is weird.
I aborted the rebase with rebase --abort
, then looked on the differences of the different commits: I am right, I am not crazy, this is the truth, rebase didn't changed the local files to the version they should be 39 commits ago.
How can I make that change then? What should I do?
EDIT: I upload this screenshot which shows the differences while looking at the logs thanks to gitk --all
, and visualizing the specific file with cat Gemfile
while doing git rebase --interactive e0ea83ac7c68df747705e3f39864cd4931416ae4^