我正处于一个长期的变革中,一切顺利,直到我的git rebase --continue
之一,我得到了这个:
$ git rebase --continue
Applying: A git commit
fatal: Unable to create '/Users/me/mycode/.git/index.lock': File exists.
Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.
我没有删除该文件,因为它已不存在。我想也许一个git GUI程序试图刷新,而我在变基础或其他东西。好的。我再次尝试,但现在我得到了
$ git rebase --continue
fatal: cannot resume: .git/rebase-apply/final-commit does not exist.
它确实不存在:
$ ls .git/rebase-apply/
0001 0005 0009 0013 0017 0021 abort-safety last orig-head rebasing threeway
0002 0006 0010 0014 0018 0022 apply-opt messageid patch rewritten utf8
0003 0007 0011 0015 0019 0023 head-name next patch-merge-index scissors
0004 0008 0012 0016 0020 0024 keep onto quiet sign
有没有办法解决这个烂摊子?这是一个很长的变形因此我不想git rebase --abort
。
答案 0 :(得分:3)
我不知道如何修复现有的rebase,但我会通过另外一个来解决这个问题:
cp .git/rebase-merge/git-rebase-todo ~/another-folder # backup what is to be done
git branch failed-rebase # save the current point as a branch
git rebase --abort
然后您可以使用以下命令继续失败的rebase:
git rebase -i --onto failed-rebase <original rebase parameters here>
打开编辑器。您应该使用原始git-rebase-todo
文件使待办事项列表与最初的匹配。保存文件,退出编辑器,rebase将启动。完成后,删除临时分支。