致命:无法创建/path/my_project/. git/index.lock:文件存在

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

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

git init

然后如果我尝试

git add .

git commit -m "first upload"

所以我会得到错误

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并在那里提交它,但不幸的是仍然存在相同的错误消息。

问题的原因是什么?

711465 次浏览

试试看

rm -f ./.git/index.lock

在您的存储库目录中。错误消息非常明确地说明了导致它的原因,因此如果您没有运行其他git进程(这是正常情况),请继续删除该文件。

尝试退出Xcode-由于它是一个git客户端,您必须退出Xcode以避免命令行上的git问题。

此问题的解决方案是复制目录中的三个xcode/project文件,然后创建新目录(其他任何地方),然后粘贴三个文件/目录。

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

cd .gitdel index.lock

更新:我发现,如果我在关闭正在处理的文件后稍等片刻,然后再尝试切换分支,我不需要执行此过程。我认为有时会出现此问题是由于git赶上了一个缓慢的文件系统。如果其他更了解git的开发人员认为这是正确的,他们可以加入进来。

我们也可以杀死git进程。我通过git的GUI应用程序收到同样的问题,出了问题,git使一些工作无限。杀戮过程将冻结与git一起工作的应用程序,只需重新启动它,一切都会好起来的。

如果您使用的是#intelliJ IDE之一并收到此消息(我使用的是#webtorm),请注意,由于隐藏了一个项目文件夹(在设置中),可能会出现此问题,这可能会阻止GIT合并。

在我的情况下,解决方案是等待5分钟。显然我之前的操作仍在运行,但我只是不知道它。我在Windows上使用乌龟git。

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

rm -f ./.git/index.lock

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

rm --force ./.git/index.lock

这招奏效了。

祝你好运!超级好用

您是否使用root用户意外创建了存储库?

碰巧我作为root用户创建了git存储库。

我删除了git存储库并在没有sudo的情况下再次创建它,它可以工作。

如果,无论出于何种原因,您正在从云服务(dropbox,驱动器,onedrive等)同步的文件夹进行重新定位,您应该暂停或关闭同步,因为它会干扰重新定位期间的权限。

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

cd .gitrm index.lock

在我的. git目录中,没有index.lock文件。所以,使用Git Bash shell,我运行了…

cd .gittouch index.lockrm index.lock

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

对我来说就是

rm -r .git-credentials.lock

使用这个:

rm -Force ./.git/index.lock

对我有效的解决方案是关闭sublime text,因为正在运行的git进程是由编辑器启动的。

如果您尝试:

/.git/index.lock

你得到:

rm:无法解除关联'index.lock':权限被拒绝

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

我更改了我的目录权限,所以我知道它可能与权限相关。在我的情况下,我删除了不需要的(_www)用户,然后通过应用更改为所有内容向每个人应用读/写权限。这是在Mac上

Mac上的目录权限

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

sudo chown -R : .git #change groupsudo chmod -R 775 .git #change permission

那么一切都是伟大的,而gaa就是成功。

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

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

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

解决方案(Win 10)

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

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

所有的删除命令都不适合我,我所做的是使用git中提供的路径导航到那里,然后手动删除它。

不要使用Atomplatformio-atom-ide-terminal插件来执行此操作。直接使用您所在地区的终端。

我在重置/压缩提交时不断收到这个错误,不知道为什么,因为我以前做过几次。

无论我删除index.lock文件多少次,每次它都会失败。

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

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

git gc

你有.git/index.lock的问题,所以使用下面的命令删除它。

命令:

rm-rf. git/index.lock

如果有人使用git svn,我也有同样的问题,但无法删除文件,因为它不存在!。检查权限后,触摸文件并删除它,我不记得还有什么,这就成功了:

  • 检查主分支。
  • git svn rebase(在master上)
  • 查看您正在处理的分支
  • git svn rebase

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

这对我来说是这样的:

  1. 打开你正在处理的分支
  2. 打开终端(我在Git GUI中使用终端)
  3. 输入命令:cd .git
  4. 输入命令:rm -f index.lock

有些可能必须使用-Force而不是-f。您可以通过在终端中执行命令来检查终端的命令行,例如:git help

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

$ cd .git/
$ rm -f index.lock

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

$ git init
$ git add .
$ git commit -m "commit msg"

只需转到D:/project/androidgc/. git/这个目录并删除index.lock这对我有用。

如果它是一个子模块,请在您的存储库目录上尝试此操作:

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

将submodule-name更改为您的子模块名称。

所有的解决方案都是正确的:

Just remove .git from your corrupted repository,
then copy this file if back from another clone (if you don't have it in another machine, just clone it).

最后,是什么让我与众不同:

  • 避免使用sudo解压缩或复制新的. git文件夹。如果您使用超级用户权限创建. git文件夹,Git将无法访问它

当我在与repo的根文件夹(即. git所在的目录)对应的目录的子目录中时,会发生这种情况。向上移动到根目录解决了这个问题-代价是使所有文件引用更加不方便,因为你必须转到路径/to/文件夹/foo.ext而不仅仅是foo.ext

重新启动机器对我有用。到目前为止提供的解决方案都不适合我。

环境Windows 10+Git Bash

编辑:我看到相同的解决方案在这里:gitindex.lock当我尝试提交时文件存在,但无法删除该文件

  1. 运行任务管理器,找到Windows进程的Git并杀死它。
  2. 删除. git文件夹下index.lock文件
  3. 它为我工作!

您需要删除index.lock文件。

在Linux

cd .gitrm -f index.lock

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

cd .gitdel index.lock