.git/index.lock 文件不断重新出现

问题描述 投票:0回答:6

当我尝试运行任何 git 命令时,我得到以下信息

$ git add .
 fatal: Unable to create 'J:/Project/geospatial/U5M_africa/.git/index.lock': File exists.

 If no other git process is currently running, this probably means a
 git process crashed in this repository earlier. Make sure no other git
 process is running and remove the file manually to continue.

我删除了文件,没有任何错误:

$ rm -f .git/index.lock

我也尝试在 Windows 中手动删除它。文件消失,但立即重新出现。如果我尝试任何 git 命令,我仍然会遇到同样的致命错误。

是什么原因导致该文件立即重新出现?我怎样才能永远摆脱它并继续我的生活?

git
6个回答
3
投票

我的不太优雅但有效的解决方案:

先重命名文件,然后删除它。由于某种原因,这有效..


0
投票

检查您的进程(使用 process explorerCTRL+F:搜索

J:\Project\geospatial\U5M_africa

您必须有一个进程在您的存储库中写入,并导致 git 创建该文件。
它可以是 git gui,也可以是“git index.lock 文件在我尝试提交时存在,但无法删除该文件”中注释的任何其他进程。


0
投票
正如 @VonC 所提到的,有些东西“锁定”了你的 git 项目并创建了这个文件。

此文件通常在您尝试

pull or push

 或使用子模块时创建,操作结束后应将其删除。

正如您所发现的 - 手动删除它也可以工作,我假设您已经尝试过它并且它被一遍又一遍地创建。


总结一下:

如果 git 进程没有自动删除该文件,您应该手动删除它,它就会起作用。这就是我遇到这个问题时所做的。

如果当前没有其他 git 进程正在运行,这可能意味着 git 进程早些时候在此存储库中崩溃了。

确保没有其他 git 进程正在运行,请手动删除文件以继续。

解决方法很简单,删除

.git/index.lock

文件即可

rm .../.git/index.lock
    

0
投票
实际上,如果删除锁定文件无法正常工作(每次都出现),那么它们是您计算机中正在运行的另一个 git 进程,可能是 git GUI 或 git 扩展或其他任何东西。确保关闭除 git bash 之外的所有已处理的 git。那么 git 命令肯定会工作,而不会创建 index.lock 文件问题。


0
投票
我也遇到了同样的问题。手动或通过命令(rm -f .git/index.lock)删除index.lock没有帮助。当我尝试切换分支时,该文件再次出现。

我重新启动(MacOS)并手动删除,它起作用了。

不确定这是否是一个好的解决方案,但可能会对某人有所帮助。


0
投票
当我单击 Pull 时,我的 git 正在创建 ~10 个不同的

.git/refs/remotes/origin/Fix/some_branch_name.lock

 文件,这些文件只存在半秒,然后就消失了。

Git 给出了“.git/.../***.lock”文件存在错误——创建和删除导致错误的文件,就好像它在捉弄我一样。

我确信这意味着什么有一个很好的解释,我这里有一个黑客,但这是我解决它的方法,这样我就可以跳过它:

打开命令行,在循环中创建一个脚本,每 0.1 秒执行一次

rm -f .git/refs/remotes/origin/Fix/some_branch_name.lock | rm -f .git/refs/remotes/origin/Fix/some_other_branch_name.lock | rm -f .git/... etc


确保此循环正在运行,然后单独触发导致 .lock 错误的任何 git 命令(例如 pull)。

错误将被修复,您不再需要这个脚本,并且 git 将不再神奇地生成 .lock 文件,因为您及时删除了这些文件,以便进程继续,就好像没有任何问题一样。 😅👍

© www.soinside.com 2019 - 2024. All rights reserved.