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

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

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

Git版本为1.7.5.4

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


当前回答

从git 2.8.4(2016年6月)开始,这种情况不应该再发生了。

参见问题755,这也应该缓解这个问题(commit 2db0641):

确保临时文件句柄没有被子进程继承 防止子进程继承index.lock的句柄。

其他回答

有时,当安装了多个Git客户端时,另一个Git客户端可能会干扰。

Ie。通过任务管理器或Get-Process确保TortoiseGit中的TGitCache在后台不活跃。

有时Git会在你做任何更改或者使用子模块时创建一个与你的repo相关的锁文件。 错误消息将显示锁定文件的路径。 修复:只需手动进入路径在终端和删除锁定文件 $ rm index.lock

这应该会有所帮助。

这可能是一个旧的回答,但我希望这对下一个需要这个解决方案的人更有用。

在linux/unix/gitbash/cygwin上尝试

Rm -f .git/index.lock

在Windows命令提示符中尝试:

.git \ index.lock的

刚刚遇到了这个问题…Gitbox是错的。也许您的GUI正在运行,导致了问题。

这是当你取消从中间的原点开始拉时发生的。

你可以手动删除索引。锁定文件从你的。git目录。

rm -f ./.git/index.lock

CD到您的项目目录并运行此命令。