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

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

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

Git版本为1.7.5.4

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


当前回答

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

这应该会有所帮助。

其他回答

如果你正在使用GIT BASH For Windows:-

运行以下两个命令 1. cd . 2. rm index.lock

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

我所做的

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

今天遇到了这个问题,SourceTree生成了几个git进程,即使在关闭SourceTree后,这些git进程仍在运行。以下是我的解决方法。

按Ctrl-Alt-Esc或在windows start中输入“任务管理器”启动任务管理器。 寻找所有名为“git”,“git-lfs”的进程,如下面的截图所示。右键单击并选择“End process”以杀死每个进程。 删除.git/index。锁文件。

除非你真的打算让根用户拥有你的repo,否则这听起来像是你意外地以根用户身份运行了Git命令(甚至可能是初始的clone/init)。如果您打算这样做,那么您将不得不以根用户身份在repo中运行所有Git命令。如果没有,运行sudo chown your-user[:your-group] -R .git来获得它的所有权,然后看看事情是否正常。