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

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

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

Git版本为1.7.5.4

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


当前回答

try

rm -f ./.git/index.lock

如果没有其他git进程正在运行,那么只需删除索引。各自项目的锁定文件。

其他回答

检查git是否仍在运行(ps -ef | grep git) 如果不存在,请移除该文件 如果是,请先关闭git进程。

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

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

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

可能(我遇到过这种情况),ls命令说它不存在,因为当前用户没有访问该目录或文件的权限。

移除锁并确保使用正确的用户执行git,以避免权限问题。

如果你在GNU/Linux系统下使用sudo命令:

执行rm project_path/.git/index.lock

Windows:

从以管理员身份打开的powershell控制台尝试

> rm -Force ./.git/index.lock

如果这不起作用,您必须杀死所有git.exe进程

> taskkill /F /IM git.exe PID为20448的进程“git.exe”已被终止。 PID为11312的进程“git.exe”已被终止。 PID为23868的进程“git.exe”已被终止。 PID为27496的进程“git.exe”已被终止。 PID为33480的进程“git.exe”已被终止。 PID为28036的进程“git.exe”已被终止。 > rm -Force ./.git/index.lock

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

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