Git rebase --index.lock 上的交互式 block

标签 git git-rebase

在 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/

相关文章:

git - 解决我们删除的 git rebase

git-rebase - 当上游已经可以到达时,为什么git-rebase会遇到冲突?

windows - git filter-branch --tree-filter 结果为 'unknown revision or path not in the working tree'

git - 如何发布删除 git flow 中的一些功能

git - 将本地存储库与 Github 存储库 merge ,丢弃远程文件

shell - Git Filter-branch 不删除文件夹?

git rebase upstream/master 与 git pull --rebase upstream master

git - 如何恢复已删除的远程分支

git - 解决冲突后如何让 git rebase 完成

rebase期间的git子模块冲突导致提交消失