Git SVN错误:之前在仓库中有一个Git进程崩溃了。

113

我刚试图将更改提交到Git主分支。根据我的阅读,似乎是要删除锁定文件的概念。消息显示:

确保没有其他Git进程在运行,并手动删除该文件

也许有人知道要删除哪个文件以及如何删除吗?


1
你能展示完整的错误信息,包括你正在运行的命令吗? - Schwern
我使用Tortoise。你能在Tortoise中删除那个文件还是只能在Shell中删除? - Pinchas K
你可能需要在命令行或文件浏览器中完成此操作。你可能需要显示隐藏文件。 - Schwern
完整错误信息为:致命错误:无法创建'C/etc/.git/index.lock',该文件已存在。如果当前没有其他 git 进程正在运行,则这可能意味着之前在仓库中发生了一个 git 进程崩溃。确保当前没有其他 git 进程正在运行,并手动删除该文件以继续操作。 - Pinchas K
5
错误信息已经说明了一切。像处理其他文件一样,删除 C:\etc\.git\index.lock 即可。 - Schwern
9个回答

214

涉及的文件可能是.git/index.lock,如果您没有其他git进程在运行,则直接删除它应该是安全的。确保没有git-svn命令挂起。

PS 我通常解决git-svn问题的方法是重新拉取存储库。这很耗时间,但您可以与尝试修复问题并行进行。在您和git之间进行一场小竞赛。当然,这仅适用于您没有未推送的提交的情况。


1
这对我没有解决问题。我在 .git/svn/refs/remotes/git-svn/index.lock 找到了另一个未解锁的文件。 - Kai Stavginski

83

像Schwern所说的那样,删除index.lock文件可以解决这个问题。

您可以通过运行rm -f ./.git/index.lock来删除它。

rm命令用于删除文件和目录。

-f表示强制执行,告诉计算机在不提示确认的情况下删除文件。


9

对于像我这样的“GUI”用户

打开Git扩展并选择存储库(如果有多个) 从顶部菜单中选择“设置”,然后选择“Git维护”,然后点击“删除索引锁定”

Git扩展:设置- > Git维护- > 删除索引锁定


6

这也可能涉及到.git/目录中的任何*.lock文件。

检查并删除它们。您可以使用:rm -f ./.git/*.lock


2
您已经在终端的另一个标签页中打开了一个提交(commit)。

1

我通过以下步骤解决了这个错误:

  1. 进入您的项目所在的同一目录。
  2. 取消隐藏文件(对于Ubuntu,请按Ctrl + H)
  3. 进入.git目录
  4. 删除“index.lock”文件

这样就解决了这个问题。


0

像Schwern所说的那样,删除index.lock文件将解决此问题。

您可以通过运行 rm -f ./.git/index.lock 命令来删除它。

rm命令用于删除文件和目录。

-f代表强制,告诉计算机在不提示确认的情况下删除文件。

如果仍然无法工作,则意味着通过git bash打开git而不是在终端中执行


0

0

我遇到了问题,甚至找不到 index.lock 文件。 我的环境有些不同,是由多个节点组成的集群。 这个问题出现在主节点上,我通过切换到工作节点来解决它,因为主节点由所有连接的用户共同使用。


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