繁体   English   中英

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"

所以我会得到错误

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

问题的原因是什么?

尝试

rm -f ./.git/index.lock

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

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

cd .git
del index.lock

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

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

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

rm -f ./.git/index.lock 

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

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

这奏效了。

祝你好运! 这个超级好用

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

cd .git
touch index.lock
rm index.lock

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

您是否不小心使用root用户创建了存储库?

碰巧我以root用户身份创建了 git 存储库。

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

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

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

那么一切都很棒,而 gaa 就是成功。

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

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

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

cd .git
rm index.lock

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

解决方案(Win 10)

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

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

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

git gc

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

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

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

如果在您尝试之后:

rm -f ./.git/index.lock

你得到:

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

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

用这个:

rm -Force ./.git/index.lock

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

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

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

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

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

我在重新设置/压缩提交时不断收到此错误,但不知道为什么,因为我之前已经做过几次了。

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

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

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

命令:

须藤 rm -rf .git/index.lock

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

$ cd .git/

$ rm -f index.lock

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

$ git init

$ git add .

$ git commit -m "commit msg"

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

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

万一,无论出于何种原因,您正在从云服务(保管箱、驱动器、onedrive 等)同步的文件夹中执行变基,您应该暂停或关闭同步,因为它会在变基期间干扰权限.

对我来说是

rm -r .git-credentials.lock 

我已经更改了我的目录权限,所以我知道它可能与权限有关。 就我而言,我删除了不需要的 (_www) 用户,然后通过对所有内容应用更改来向所有人应用读/写权限。 这是在 Mac 上

Mac 上的目录权限

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

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

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

  • 签出主分支。
  • git svn rebase ( 在 master 上)
  • 结帐您正在处理的分支
  • git svn 变基

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

这为我做到了:

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

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

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

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 文件夹

当我尝试将项目树移至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.

我尝试过也创建一个新的仓库,并提交它,但是不幸的是仍然是同样的错误信息。

是什么原因引起的?

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

环境 Windows 10 + Git Bash

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

您需要删除 index.lock 文件。

在 Linux 中

cd .git
rm -f index.lock

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

cd .git
del index.lock

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM