在 Linux 上使用 git 1.7.10 我试图在大约 100 个提交的分支上使用 git rebase -i。我经常但不总是遇到这个问题:
在我指出要进行哪些更改后...例如。我只是在上游部分附近做了一个改写,git 继续运行并在应用提交时在命令行中显示一个计数器:比如 [17/100]...
这通常应该是一个相当流畅的操作,但它经常在中间某处停止说:
[detached HEAD 5e1a3c8] Commit message
Author: username
1 file changed, 14 insertions(+), 3 deletions(-)
fatal: Unable to create '/[path to repository]/.git/index.lock': File exists.Could not apply 05e6b8ef Other commit message
当我运行 git rebase --continue 时,我会看到当前提交的提交消息,当我关闭文件时,git rebase 会继续,但它会忽略该提交...这是非常无用的,所以目前我只是这样做 - -中止,但这很痛苦......
也许可以手动提交有问题的提交,然后 --continue,但我还没有研究过。
无论如何,当我去检查 index.lock 不存在时。也许它在 git 想要创建它的那一刻就存在,但在我可以用文件浏览器查看它之前它肯定被删除了......
ps:如果我在 rebase 时没有打开 gitg,我似乎无法重现这个。
有什么线索吗?
更新:更新到 gitg 2.6 似乎已经解决了问题
最佳答案
创建该文件是为了确保两个客户端不会相互干扰对同一个存储库的操作。我曾经用 torgoisegit 遇到过这个问题。它也可能在其他时间发生,只是交互式 rebase 是一个相当密集的操作,所以你更有可能点击它。在你做你的 rebase 之前,关闭 gitg 和任何其他客户端。
关于Git rebase --index.lock 上的交互式 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10339815/