git rebase和已删除的rebasing分支导致“Interactive rebase already started”错误消息

时间:2012-01-17 14:03:55

标签: git rebase

我正在尝试使用几个分支,所以我在一个临时分支上进行了重新设定,当我决定不以另一种方式完成rebase时,我正在解决一些冲突。然后我删除了所涉及的临时分支并继续我的快乐方式。几个小时后,我想重新定义另一个分支并收到此错误消息

Interactive rebase already started

git rebase --abort显示此错误消息

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

试图创建另一个名为tmp/rails3-rails-2-fixes但没有骰子的分支

我有什么想法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:20)

嗯,这很尴尬。重新创建分支也是我的第一次尝试。如果做不到这一点,您应该能够删除包含rebase状态的.git/rebase-merge目录。 (如果你愿意的话,把它移到一边而不是安全的。)一旦那个消失了,Git就没有办法知道正在进行的改造。看看你的分支机构,确保你没有在这个过程中失去任何提交,你会很好!

答案 1 :(得分:10)

检查git status,看看你是否在最后一次重组后没有结账,那么你就不在任何一个分支上。

因为rebase将你转移到非分支区域,所以你必须使用git rebase --abort命令中止最后一个rebase并检查分支以进入分支并开始新的rebase

答案 2 :(得分:1)

我在尝试的rebase期间遇到了一个非常类似的错误,但没有失败。以上提示都没有帮助。这就是我所看到的:

$ 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

事实证明,如果引用名称是不明确的,则rebase将失败,至少在git版本1.7.10.2 (Apple Git-33)上。 我捅了一下,看到我不小心创建了一个与我试图改变的分支同名的标签。删除标签可以消除此错误。