I'm having a problem with editing commits.
I have 2 commits for 2 .php
files. My goal is to edit them both. I read about rebase -i
and this is what I reckon is supposed to be done:
- first I change
pick
to edit
;
- save and exit;
- rebase stops;
- type
git commit --amend
;
- make changes, save and close the text editor;
- type
git rebase --continue
.
After this I believe the rebase stops again and I have to do this all over again for the second commit.
But right after I type git rebase --continue
i get this:
file1.php: needs update
You must edit all merge conflicts and then
mark them as resolved using git add
What is the problem and what do I do?
When you stop for the rebase you have to:
- edit a file(s)
- add changes to the index -
git add changedFile
- amend changes -
git commit --amend
- continue rebasing -
git rebase --continue
From your description it is possible that you forgot to add changes to the index. In that case git commit --amend
does nothing (there is no changes to amend). In addition you have git commit --amend
before you edit the file which is also wrong (you have to amend changes you already did on the file).
Try to apply steps in the order I gave.
(Posted solution on behalf of OP).
I got the right way to do it:
git rebase -i --root (I wasn't able to find both commits using HEAD~2)
pick->edit for both commits
Ctrl+X and Y and ENTER
edit the first commit
git add file1.php
git commit --amend
git rebase --continue
edit the second commit
git add file2.php
git commit --amend
git rebase --continue
git push -f
Hope this helps at least one person starting their git experience. Szpak, you've been a big help. Thanks.