当我尝试运行任何 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 命令,我仍然会遇到同样的致命错误。
是什么原因导致该文件立即重新出现?我怎样才能永远摆脱它并继续我的生活?
我的不太优雅但有效的解决方案:
先重命名文件,然后删除它。由于某种原因,这有效..
检查您的进程(使用 process explorer:CTRL+F:搜索
J:\Project\geospatial\U5M_africa
)
您必须有一个进程在您的存储库中写入,并导致 git 创建该文件。
它可以是 git gui,也可以是“git index.lock 文件在我尝试提交时存在,但无法删除该文件”中注释的任何其他进程。
此文件通常在您尝试
pull or push
或使用子模块时创建,操作结束后应将其删除。正如您所发现的 - 手动删除它也可以工作,我假设您已经尝试过它并且它被一遍又一遍地创建。
如果当前没有其他 git 进程正在运行,这可能意味着 git 进程早些时候在此存储库中崩溃了。
确保没有其他 git 进程正在运行,请手动删除文件以继续。
解决方法很简单,删除.git/index.lock
文件即可
rm .../.git/index.lock
我重新启动(MacOS)并手动删除,它起作用了。
不确定这是否是一个好的解决方案,但可能会对某人有所帮助。
.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
错误将被修复,您不再需要这个脚本,并且 git 将不再神奇地生成 .lock 文件,因为您及时删除了这些文件,以便进程继续,就好像没有任何问题一样。 😅👍