Git rebase --interactive 在 index.lock 上被阻止

3
在Linux上使用git 1.7.10时,我正在尝试对大约100个提交的分支使用git rebase -i。 我经常(但不总是)遇到这个问题:
在我指定要进行更改的内容之后...例如,我只是在靠近上游部分处进行了重新编辑,git继续运行并在应用提交时在命令行中显示一个计数器:如[17/100] ...
这通常应该是一个非常平滑的操作,但经常会在中途停止,并显示以下内容:
[detached HEAD 5e1a3c8] 提交信息 作者:用户名 1个文件已更改,插入14个(+),删除3个(-) 致命错误:无法创建'/ [存储库路径]/.git/index.lock':文件已存在。 无法应用05e6b8ef其他提交信息
当我运行git rebase --continue时,会显示当前提交的提交消息,当我关闭文件时,git rebase会继续,但它会忽略该提交...那就没用了,所以我现在只能使用--abort,但这很痛苦...
也许可以手动提交有问题的提交,然后再--continue,但我还没有研究过。
在任何情况下,当我去检查index.lock不存在时。也许它在git想要创建它的时候存在,但是在我可以使用文件浏览器查看它之前肯定已被删除...
PS:如果我在重新设置时没有打开gitg,则似乎无法重现此问题。
有什么线索吗?
更新:将gitg更新到2.6似乎解决了这个问题。
1个回答

3

这个文件的作用是确保两个客户端在使用同一个代码库时不会相互干扰。我曾经在使用torgoisegit时遇到过这个问题。其他情况下也可能发生,只是交互式变基操作比较复杂,因此出现这个问题的可能性更大。在执行变基操作之前,请关闭gitg和其他客户端。


1
是的,这太糟糕了。我可以忍受锁争用,也就是说我需要退出客户端应用程序,但是我花了一段时间才意识到为什么在大型重新基础上实际上会丢失数据。 - ches

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接