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

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

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

Git版本为1.7.5.4

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


当前回答

在我的例子中,它是窗户,而不是完全关闭。

窗口已休眠,拒绝挂载

Windows很有可能真的处于休眠状态。当你告诉Windows正常关机时,它会自动关机。这样做的好处是可以获得更快的启动时间。

在没有hybernating的情况下关闭Windows,在命令提示符下发出以下命令(在Windows中):

shutdown /s

您可能还需要包含/t 0来立即关闭。

我找到了一个很好的教程来设置启动器:如何在Windows 8中完全关机而不禁用混合启动。

真正关闭Windows的更简单的方法是“重新启动”(而不是“关闭”),但随后拦截引导过程并引导Linux,而不是让它引导Windows。

信贷:nobar

其他回答

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

我的解决方案是删除.index文件,并允许Git重新构建另一个。

del . \指数。洛克为我工作。

当我从主分支签出一个新分支时,我遇到了这个问题。

删除索引后很容易发生签出。锁文件。

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

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

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

在linux/unix/gitbash/cygwin上尝试

Rm -f .git/index.lock

在Windows命令提示符中尝试:

.git \ index.lock的