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

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

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

Git版本为1.7.5.4

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


当前回答

获取错误:

Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
fatal: Unable to create '/home/user/project/.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.

但是我找不到(也没有删除)那个。git/index。锁文件。

在我的情况下,吉特可乐正在运行!

它显然创建了。git/index。每隔一段时间就会锁一次,或者是由于我在命令行上所做的更改而导致的,在此期间我收到了这个错误-所以Git -cola显然会“干扰”Git的命令行运行(或一些Git CLI操作)。

这可以通过在命令行git rebase期间关闭git-cola来解决。

其他回答

我创建了一个空索引。锁定文件,使用Windows命令删除

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

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

我所做的

删除项目。Git \索引文件手动 在终端git重置 synup项目

我有这个完全相同的错误,但问题不是锁文件。相反,问题是我将另一个git repo的内容复制到这个repo中,包括.git不可见文件夹。因此,SourceTree对我想要stage文件的repo感到困惑(在SourceTree认为我在的repo和我嵌入的.git目录中的内容说我应该在的repo之间存在不匹配)。

我在Windows上的TortoiseGit和Cygwin有这个问题。我不能删除。/.git/index。我尝试了Cygwin和命令提示符,它说该文件正在被另一个进程使用。

我发现我有两个TortoiseProc.exe实例正在运行。我杀死了其中一个,并关闭了我所有的windows资源管理器窗口,然后能够删除文件。我不知道杀死一个TortoiseProc.exe实例是解决方案还是关闭windows资源管理器窗口。