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

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

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

Git版本为1.7.5.4

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


当前回答

如果使用备用的命令行git客户端,比如hub,也会发生这种情况。

几年来,我一直在使用hub作为git的别名替代品,但最近写了一个bash脚本,在其中执行了大量git工作,并开始出现索引锁问题。

直到我想起来我运行的是hub而不是git,我才找到解决方案。我把它去掉了,问题就解决了!

其他回答

我最近也遇到了同样的问题。如果你检查整个错误消息,它还说有一些进程正在使用git进程,阻止你删除index.lock。你可以打开IDE,比如Visual Studio或者集成了git的相关软件。关闭它,并尝试重新存储您的文件。希望能有所帮助。

通过删除你正在尝试的回购,我解决了这个问题 提交更改并从远程复制最新版本(如果 使用远程git服务器)。 如果是本地,则从目录中复制数据 并初始化一个新的git存储库。

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

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

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

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