当我试图移动我的项目树到git repo时,我仍然得到这个错误消息。

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

git init

然后如果我尝试

转到添加 。

or

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.

我也尝试创建一个新的回购,并在那里提交它,但不幸的是,仍然是相同的错误消息。

问题的原因是什么?


Try

rm -f ./.git/index.lock

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


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


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


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

cd .git
del index.lock

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


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


如果你正在使用#intelliJ ide中的一个并接收到这个msg(我正在使用#webtorm),请注意这个问题可能会发生,因为隐藏了一个项目文件夹(在设置内部),这可以阻止git合并。


对我来说,解决办法是等5分钟。显然我之前的手术还在进行,只是我不知道而已。我在用乌龟屎擦窗户。


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

rm -f ./.git/index.lock 

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

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

这很有效。

好运! 这很有效


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

碰巧我是以根用户创建git存储库的。

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


在这种情况下,无论出于什么原因,你正在从一个由云服务(dropbox, drive, onedrive等)同步的文件夹进行重基,你应该暂停或关闭同步,因为它会影响重基期间的权限。


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

cd .git
rm index.lock

在我的.git目录中,没有索引。锁文件。因此,使用Git Bash shell,我运行…

cd .git
touch index.lock
rm index.lock

touch命令创建了文件,问题就解决了。


对我来说

rm -r .git-credentials.lock 

用这个:

rm -Force ./.git/index.lock

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


如果你尝试之后:

Rm -f ./.git/index.lock

你会得到:

Rm:不能断开索引。lock':拒绝允许

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


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


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

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

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

解决方案(win10)

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

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


所有的删除命令都没有为我工作,我所做的是使用git提供的路径导航,然后手动删除它。


不要使用Atom platform - Atom -ide-terminal Plugin来做这件事。 直接使用您的发行版的终端。

我在重基/压缩提交时一直得到这个错误,不知道为什么,因为我之前已经做过几次了。

不管我删除索引多少次。锁定文件,每次都会失败。

事实证明,这是因为我正在使用ATOM EDITOR终端插件。当我使用Ubuntu自带的终端时,它就像一个魅力。


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

git gc

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

命令:

Sudo rm -rf .git/index.lock


如果有人正在使用git svn,我有同样的问题,但不能删除文件,因为它不存在!在检查权限,触摸文件并删除它之后,我不记得还有其他什么,这是有效的:

签出主分支。 Git SVN rebase (master) 签出您正在处理的分支 Git SVN rebase


因为我必须使用不同的答案来得到实际的解决方案(对我来说)。

这对我来说很管用:

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

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


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

$ cd .git/

$ rm -f index.lock

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

$ git init

$ git add .

$ git commit -m "commit msg"

只需转到D:/project/androidgc/。Git /此目录并删除索引。这个锁对我有用。


如果它是一个子模块,在你的存储库目录上试试这个:

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

将submodules-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所在的目录)时,就发生了这种情况。向上移动到根目录解决了这个问题-代价是使所有文件引用更不方便,因为您必须访问path/to/folder/foo。Ext而不是foo。Ext


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

环境 视窗 10 + Git Bash

编辑:我看到同样的解决方案是在这里:git索引。提交时文件存在,但无法删除


运行任务管理器,找到Git for windows进程并杀死它。 删除索引。锁定文件在。git文件夹下 这对我很管用!


需要删除索引。锁文件。

在Linux中

cd .git
rm -f index.lock

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

cd .git
del index.lock