Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git rebase and deleted rebasing branches causing "Interactive rebase already started" error message

Tags:

git

rebase

I was trying something out with a couple of branches so I rebased on a temporary branch and was in the middle of resolving some conflicts when I decided to not to complete the rebase it out another way. I then deleted the temporary branch involved and went on my merry way. A couple of hours later I wanted to rebase another branch and get this error message

Interactive rebase already started

git rebase --abort displays this error message

error: unable to resolve reference refs/heads/tmp/rails3-rails-2-fixes: No such file or directory
fatal: Cannot lock the ref 'refs/heads/tmp/rails3-rails-2-fixes'.
Could not move back to refs/heads/tmp/rails3-rails-2-fixes

Tried to just create another branch named tmp/rails3-rails-2-fixes but no dice

Any ideas how I can resolve this?

like image 499
tee Avatar asked Jan 17 '12 14:01

tee


People also ask

What happens if you rebase twice?

Yes, you can rebase more than once. After rebasing, you get a fresh set of commits. These commits are exactly like all other commits and hold no record of having been rebased. The main thing you need to be careful for is the possibility of rebase conflicts.

How do I remove interactive rebase?

Interactive rebase for the last 31 commits (it doesn't hurt if you pick way too many). Simply take the commits that you want to get rid of and mark them with "d" instead of "pick". Now the commits are deleted effectively undoing the rebase (if you remove only the commits you just got when rebasing).

How do I delete a rebase branch?

To undo the rebase , we can use the reflog command of Git. Using git reflog , we can determine the branch's head commit immediately before the rebase starts.


3 Answers

Hm, that's awkward. Recreating the branch would've been my first try too. Failing that, you should be able to remove the .git/rebase-merge directory, which contains the rebase state. (Move it to the side instead to be safe, if you want.) Once that's gone, Git shouldn't have any way to know there was a rebase in progress. Have a look at your branches to make sure you haven't managed to lose any commits in the process, and you'll be good!

like image 130
Cascabel Avatar answered Oct 16 '22 06:10

Cascabel


check the git status and see if you not checkout any branch after last rebase then you are not on any branch.

becase rebase transfer you to a non branch area, so you have to abort the last rebase by using git rebase --abort command and checkout a branch to go on the branch and start new rebasing

like image 22
Dau Avatar answered Oct 16 '22 05:10

Dau


I just got a very similar error during an attempted rebase that did not fail. None of the tips above helped. Here's what I was seeing:

$ git pull --rebase
warning: refname 'xport1' is ambiguous.
First, rewinding head to replay your work on top of it...
Fast-forwarded xport1 to 98b787b0ea1f7f6771a5b1b56c7e8cc67b84c242.
error: Ref refs/heads/xport1 is at 98b787b0ea1f7f6771a5b1b56c7e8cc67b84c242 but expected 3865d63ffb3a1a495363bfbd9ebb089e16152839
fatal: Cannot lock the ref 'refs/heads/xport1'.
Could not move back to refs/heads/xport1

It turns out that if a reference name is ambigious, the rebase will fail, at least on git version 1.7.10.2 (Apple Git-33). I poked around and saw I had accidentally created a tag with the same name as the branch I was trying to rebase on. Deleting the tag got rid of this error.

like image 36
Eliot Avatar answered Oct 16 '22 05:10

Eliot