Forgot "git rebase --continue" and did "git commit". How to fix?

Git

Git Problem Overview


I was rebasing code in git, I got some merge conflicts. I resolved the conflicts and did:

git add

At this point I forgot to do:

git rebase --continue

I continued coding and did:

git commit

for the changes. Now I am on "no branch" and can't do:

git rebase --continue 

How do I fix this?

Git Solutions


Solution 1 - Git

Just do git reset --soft HEAD^. It moves the HEAD pointer to its parent but keeps the work tree and adds the merge change to the index. So you can continue rebasing with git rebase --continue as before.

Solution 2 - Git

EDIT: Look at the answer below as well to see if that's an easier solution for you. https://stackoverflow.com/a/12163247/493106


I'd have to try it out, but I think this is what I would do:

  1. Tag your latest commit (or just write down its SHA1 somewhere so you don't lose it): git tag temp
  2. git rebase --abort
  3. Do the rebase again. You'll have to resolve the merge again. :(
  4. git rebase --continue
  5. git cherry-pick temp

The problem with this is that your temp commit probably contains both the resolution of the merge, and the new code. So it could be tricky but I would try it and see if it works.

Solution 3 - Git

I got the same problem, and to make it worse, I was rebasing three commits, and after solving conflicts on the second commit, I "committed" instead of "rebase --continue".

As a result I had this git reflog

When I applied kirikaza's solution, I just reverted the third commit, and not the second one, which was problematic..

As you can see, the rebase starts by a checkout from the remotes/origin/master branch and then applies my three commits that appear as the three previous operation (before the checkout) in the reflog.

Then, if you want to restart from a clean base, before the rebase, you can simply reset hard to the hash just before the checkout of the rebase operation. In my case (see the picture):

git reset --hard 859ed3c

Then you can start a new git rebase.

Solution 4 - Git

I had git rebased, fixed conflicts, git added file with conflicts, and (mistakenly) committed.

I tried the git reset --soft HEAD^ and git reset --hard solutions given, but neither worked for me.

However, just git rebase --abort worked: it took me back to before the start of the rebase with a clean working tree.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAbhilashView Question on Stackoverflow
Solution 1 - GitkirikazaView Answer on Stackoverflow
Solution 2 - GitTylerView Answer on Stackoverflow
Solution 3 - GitLouis DurandView Answer on Stackoverflow
Solution 4 - GitremnantkevinView Answer on Stackoverflow