我正在尝试用几个分支进行某些操作,因此我重新基于一个临时分支,并且在解决一些冲突的过程中,我决定不以另一种方式完成重新基于它的操作。然后我删除了相关的临时分支,继续我的快乐之路。几个小时后,我想重新建立另一个分支的基础,并得到这个错误消息
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
的分支,但没有骰子
有什么想法可以解决吗?
嗯,这很尴尬。重建树枝也是我的第一次尝试。否则,您应该能够删除包含rebase状态的.git/rebase-merge
目录。(如果你愿意的话,为了安全起见,把它移到一边。)一旦它消失了,Git就不应该知道有一个正在进行的重新基准。看看你的分支,确保你在这个过程中没有丢失任何提交,你会很好的!
检查git status
,看看在上次重新基准后是否没有签出任何分支,那么您就没有在任何分支上。
因为rebase会将您转移到一个非分支区域,所以您必须使用git rebase --abort
命令中止最后一个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)
上是这样。我四处寻找,发现我无意中创建了一个与我试图重新建立基础的分支同名的标记。删除标记就消除了这个错误。