当我做'git commit'时,我得到以下内容:

无法创建“project_path/.git/index”。lock `:文件已存在。

然而,当我执行ls project_path/.git/index。锁定,表示文件不存在。你觉得我该怎么做?我还注意到project_path/。git由root拥有,不确定这是否与我遇到的问题有关。

Git版本为1.7.5.4

编辑:看起来问题很可能是我正在运行的另一个进程,那就是向项目目录写入(我不知道)。我重新启动了我的电脑,然后我就没有问题了。


当前回答

如果使用备用的命令行git客户端,比如hub,也会发生这种情况。

几年来,我一直在使用hub作为git的别名替代品,但最近写了一个bash脚本,在其中执行了大量git工作,并开始出现索引锁问题。

直到我想起来我运行的是hub而不是git,我才找到解决方案。我把它去掉了,问题就解决了!

其他回答

我也遇到过同样的情况。我甚至没有对本地代码做任何更改。我刚刚编辑了一个文件并恢复了它。我只是在隐藏的。git文件夹中删除了下面的文件。它工作!

project_path / . / index.lock

我在windows 10中也有这个问题。

当我尝试del ./.git/index。锁,它告诉我不能删除索引。lock':设备或资源繁忙

我终于明白了原因:

计算机有两个进程使用git:

吉特巴什 CMDER

所以我使用cder .exe来git提交它会发生错误。

所以解决方案是使用git bash或终止git bash,然后使用cder .exe

关闭所有可能影响这个.git/index的窗口。锁文件 删除.git/index。锁文件。 打开命令行编辑器,cd到git文件的位置。

(如果创建文件只是简单地从cd到那个位置,那么问题出在编辑器上。关闭编辑器。不要在此任务中再次使用此编辑器。打开另一种编辑器- windows power shell或简单的cmd。现在你可以使用git命令继续)

在我的sourceTree应用程序中,我不能做提交或切换到任何其他提交/分支。时间显示误差

致命:无法创造等等等等。

我只是通过goto .git文件夹(在项目资源管理器目录)解决这个问题。删除索引-----[文件类型:LOCK文件]。现在我得到了sourceTree的所有访问权限。

请确保索引锁文件..假设你没有得到文件类型,改变计算机中的文件视图设置。注意:.git文件夹通常是隐藏类型的文件夹。

在我的例子中,只需转到project_path/。Git并删除索引。锁文件。试着推动你的代码,它会工作的。