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

时间:2011-10-22 16:03:55

标签: git

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

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

  

git init

然后如果我尝试

  

git add。

  

git commit -m“首次上传”

所以我会收到错误

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

问题的原因是什么?

33 个答案:

答案 0 :(得分:1530)

尝试

rm -f ./.git/index.lock

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

答案 1 :(得分:146)

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

cd .git
del index.lock

更新: 我发现在我尝试切换分支之前关闭我正在处理的文件后等待片刻,我不需要执行此过程。我认为有时这个问题是由于git赶上了一个缓慢的文件系统。其他更多git知识渊博的开发人员如果认为这是正确的话就可以加入。

答案 2 :(得分:30)

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

答案 3 :(得分:19)

我遇到了同样的问题。我试过了

rm -f ./.git/index.lock 

并且控制台给了我一条错误消息。然后,我试过

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

并且有效。

祝你好运! 这超级

答案 4 :(得分:14)

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

QFile

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

答案 5 :(得分:10)

  

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

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

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

答案 6 :(得分:8)

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

sudo chown -R : .git #change group
sudo chmod -R 775 .git #change permission
然后,ererything很棒,gaa就是成功。

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

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

答案 7 :(得分:6)

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

cd .git
rm index.lock

答案 8 :(得分:5)

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

解决方案(赢10)

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

<强> 2。删除 .git / index.lock文件

答案 9 :(得分:5)

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

答案 10 :(得分:5)

如果您尝试后:

  

rm -f ./.git / index.lock

你得到:

  

rm:无法取消链接'index.lock':权限被拒绝

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

答案 11 :(得分:4)

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

答案 12 :(得分:4)

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

答案 13 :(得分:4)

使用此:

rm -Force ./.git/index.lock

答案 14 :(得分:4)

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

答案 15 :(得分:3)

您对.git/index.lock有疑问,请使用以下命令将其删除。

<强>命令:

  

sudo rm -rf .git / index.lock

答案 16 :(得分:3)

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

git gc

答案 17 :(得分:2)

对我而言

rm -r .git-credentials.lock 

答案 18 :(得分:2)

此问题的解决方法是复制目录中的三个xcode / project文件,然后创建新目录(Wheverver else),然后粘贴三个文件/目录。

答案 19 :(得分:2)

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

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

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

答案 20 :(得分:2)

请勿使用 Atom platformio-atom-ide-terminal插件执行此操作。 直接使用您的DISTRO终端。

在重新设定/压缩提交时我一直收到此错误,并且不知道为什么,因为我之前已经多次这样做了。

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

原来是因为我使用的是 ATOM EDITOR 终端插件。一旦我使用Ubuntu附带的终端,它就像一个魅力。

答案 21 :(得分:2)

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

答案 22 :(得分:2)

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

答案 23 :(得分:2)

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

Directory Permission on Mac

答案 24 :(得分:2)

如果出于某种原因,您正在通过云服务(保管箱,驱动器,onedrive等)同步的文件夹进行转换,您应该暂停或关闭同步因为它会在rebase期间干扰权限。

答案 25 :(得分:1)

如果有人使用git svn,我遇到了同样的问题但无法删除该文件,因为它不在那里!检查权限,触摸文件并删除它,我不记得还有什么,这就是诀窍:

  • 结帐主分行。
  • git svn rebase(在主人身上)
  • 结帐您正在处理的分支机构
  • git svn rebase

答案 26 :(得分:1)

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

这对我有用:

  1. 您正在开设的分支机构
  2. 打开终端(我在Git GUI中使用终端)
  3. 输入命令:cd .git
  4. 输入命令:rm -f index.lock
  5. 有些可能必须使用-Force而不是-f。您可以通过在终端中执行以下命令来检查终端的命令行:git help

答案 27 :(得分:1)

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

$ cd .git/

$ rm -f index.lock

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

$ git init

$ git add .

$ git commit -m "commit msg"

答案 28 :(得分:1)

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

答案 29 :(得分:0)

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

[0]

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

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

答案 30 :(得分:0)

当我在与仓库的根文件夹相对应的目录(即.git所在的目录)的子目录中时,发生了这种情况。移至根目录解决了该问题-代价是使所有文件引用更加不便,因为您必须转到path / to / folder / foo.ext而不是foo.ext

答案 31 :(得分:0)

重新启动机器对我有用。到目前为止,没有提供的解决方案对我有用。

Env Windows 10 + Git Bash

编辑:我在这里看到相同的解决方案:git index.lock File exists when I try to commit, but cannot delete the file

答案 32 :(得分:-1)

尝试以管理员身份运行cmd。这解决了我的问题。