关于Git:Git – 致命:无法创建’/path/my_project/.git/index.lock’:文件存在


Git - fatal: Unable to create '/path/my_project/.git/index.lock': File exists

当我尝试将项目树移到git repo时,仍然收到这个错误消息。

我检查了我的目录对这个项目的权限,这些权限设置在777上。在my_project目录下的终端中,我设置了:

git init

如果我尝试的话

git add .

git commit -m"first upload"

所以我会得到错误

1
2
3
4
5
fatal: Unable to create '/path/my_proj/.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.

我还尝试创建一个新的repo并在那里提交它,但不幸的是仍然有相同的错误消息…我已经有点绝望了,整个下午我都在试图找到解决办法,但还是没有成功…

有人能帮我吗,请问问题的原因是什么?

无数次谢谢!


尝试

1
rm -f ./.git/index.lock

在存储库目录中。错误消息对于其通常的原因非常明确,因此如果没有其他Git进程运行(这是正常情况),请继续并删除该文件。


在Windows中,在repo目录的命令提示符中执行此操作:

1
2
cd .git
del index.lock

更新:我发现,如果我在关闭正在处理的文件后稍等片刻,然后再尝试切换分支,就不需要执行此过程。我认为有时这个问题是因为Git赶上了一个缓慢的文件系统。另外,如果他们认为这是正确的,更多的Git知识渊博的开发人员可以插话。


尝试退出xcode——因为它是一个git客户机,所以您必须退出xcode,以避免在命令行上出现git问题。


我也有同样的问题。我试过

1
rm -f ./.git/index.lock

控制台给了我一个错误信息。然后,我尝试

1
rm -Force ./.git/index.lock

这很管用。

祝你好运!这个很管用


在my.git目录中,没有index.lock文件。所以,使用git bash shell,我运行…

1
2
cd .git
touch index.lock

触摸命令创建了文件,问题就消失了。


碰巧我用root用户创建了git存储库。我删除了Git存储库,并在没有sudo的情况下重新创建了它,它工作正常。


我也有这个问题,我发现这真的是一个许可问题。所以我这样做:

1
2
sudo chown -R : .git #change group
sudo chmod -R 775 .git #change permission

那么,电子产品是伟大的,GAA是成功的。

然后我使用gp,得到另一个几乎相同的错误

1
sudo chown -R"${USER:-$(id -un)}" . #use this can fix the problem


在Mac OS X中,在repo目录的命令提示符中执行此操作:

1
2
cd .git
rm index.lock


如果您正在使用一个#intelliJides并接收此消息(我使用#webtorm),请注意,由于隐藏了一个项目文件夹(在设置中),可能会发生此问题,这会阻止GIT合并。


在Windows中,我只能在结束任务管理器中所有Git Windows(32位)进程的任务后删除锁定文件。

解决方案(Win 10)

1。结束任务管理器中所有Git Windows(32位)进程的任务

2。删除.git/index.lock文件


如果尝试后:

rm -f ./.git/index.lock

你得到:

rm: cannot unlink 'index.lock': Permission denied

尝试关闭所有可能使用Git的软件。我打开了源代码树和Visual Studio,关闭后两个命令都有效。


对我有效的解决方案是关闭崇高的文本,因为运行的git进程是由编辑器启动的。


在我的例子中,解决方法是等待5分钟。显然我以前的手术还在进行,但我不知道。我在窗户上用乌龟球。


使用此:

1
rm -Force ./.git/index.lock


我认为有一个比删除文件更好的解决方案(天知道在用sudo删除/创建文件时接下来会发生什么):

1
git gc

您对.git/index.lock有问题,请使用下面的命令删除它。

命令:

sudo rm -rf .git/index.lock


如果它是子模块,请在存储库目录中尝试此操作:

1
rm -f ../.git/modules/submodule-name/index.lock

将子模块名称更改为子模块名称。


我更改了我的目录权限,所以我知道它可能与权限有关。在我的例子中,我删除了不需要的(www)用户,然后通过对所有内容应用更改来向每个人应用读/写权限。这是MAC

Directory Permission on Mac


所有的remove命令对我来说都不起作用,我所做的就是使用git中提供的路径导航到那里,然后手动删除它。


不要使用Atom platformio-atom-ide-terminal插件来完成此操作。直接使用发行版的终端。

我在重新平衡/挤压提交时一直得到这个错误,不知道为什么,因为我以前做过几次。

不管我要删除多少次index.lock文件,每次都会失败。

原来是因为我在使用Atom编辑器终端插件。有一次我使用了Ubuntu附带的终端,它就像一个魅力。


如果出于任何原因,您正在云服务(Dropbox、Drive、OneDrive等)同步的文件夹中执行一个重新平衡,则应暂停或关闭同步,因为它会干扰重新平衡期间的权限。


我们也可以终止git进程。我通过Git的GUI应用程序收到了同样的问题,出了点问题,Git可以无限地工作。杀戮过程将冻结与Git一起工作的应用程序,只需重新启动它,一切都会正常。


解决这个问题的方法是复制目录中的三个Xcode/project文件,然后创建新目录(无论在哪里),然后粘贴三个文件/目录。


对我来说

1
rm -r .git-credentials.lock


如果有人在使用git svn,我有同样的问题,但无法删除文件,因为它不在那里!。在检查权限、触摸文件并将其删除之后,我不记得还有什么,但这确实起了作用:

  • 签出主分支。
  • Git Svn Rebase(主服务器上)
  • 签出您正在处理的分支
  • 谷胱甘肽转移酶

有点补充,因为我必须使用不同的答案来获得实际的解决方案(对我来说)。

这是为我做的:

  • 打开你正在工作的分支
  • 开放式终端(我在Git GUI中使用终端)
  • 命令类型:cd .git
  • 命令类型:rm -f index.lock
  • 有些人可能不得不使用-Force,而不是-f。您可以通过在终端中执行命令来检查终端的命令行,例如:git help


    我用很多方法试了几次,但这个方法对我很有效(我使用了Pycharm的终端):

    1
    2
    3
    $ cd .git/

    $ rm -f index.lock

    然后我再次尝试创建一个空的git repo:

    1
    2
    3
    4
    5
    $ git init

    $ git add .

    $ git commit -m"commit msg"

    只需转到d:/project/androidgc/.git/this目录并删除index.lock,这对我很有用。