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

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

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

Git版本为1.7.5.4

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


当前回答

对我来说,罪魁祸首是windows安全,它阻止了git.exe运行,你可以检查屏幕右下角的通知选项卡。

消息将如下所示

Virus and threat protection 
unauthorized changes blocked
controlled folder access blocked git.exe from running

其他回答

在任务管理器中:

开发所有流程 关闭所有git进程 删除锁定文件

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

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

在我的案例中,没有索引。锁定要删除的文件。我试图在用pretty格式化后提交109个文件。提交更少的文件最终“解决”了这个问题。

首先,你必须导航到你的项目的特定文件夹。 比如,如果你的项目名称是Firstproject,那么首先进入项目的目录。 然后输入CD .git 然后在导航到git文件夹后,键入del index.lock 在删除文件index.lock..之后,你将能够像以前一样提交和推送

如果您正在使用Visual Studio(如Visual Studio 2019),则在尝试使用Git提交更改时会出现此错误。

当您没有与Team Server连接时,可能会发生这种情况。为了纠正它,

在Visual Studio中,从Team菜单中选择命令Manage Connections。 在解决方案资源管理器中查看—您应该看到团队资源管理器-连接。 通过在列出的树中单击连接到您正在处理的项目。(如果你之前参与过这个项目,这一步就有效了。) 连接后,再次尝试提交。