在过去的六个月中,我使用SourceTree几乎没有出现问题,但现在无法将任何文件提交到SourceTree。每次尝试提交时,都会显示以下错误消息:
git -c diff.mnemonicprefix=false -c core.quotepath=false reset -q -- Assets/... fatal: Unable to create 'E:/Users/.../.git/index.lock': File exists.
如果当前没有其他 git 进程正在运行,则可能意味着该仓库中之前的某个 git 进程崩溃了。请确保没有其他 git 进程在运行,并手动删除文件以继续。
我知道类似这个的问题并已尝试实施人们建议解决此问题的各种方法。为了安全起见,我将与大家分享我所尝试的但未能解决问题的方法。
- 错误信息很明显——删除 index.lock 文件。问题是我没有找到这个文件。我甚至在隐藏的 .git 文件夹和命令提示符下创建了一个文件,然后将其删除,但都无济于事。我还尝试了从链接帖子中找到的其他命令行命令,但它们也都无效。
cd .git
del index.lock
命令行没有找到任何文件,直到我创建了一个文件并删除它,但问题依然存在。
我尽力确保没有其他程序同时运行 git(没有 IDE、Xcode、Tortoise、git-cola 等)。
我多次关闭 SourceTree 并重新打开它,因为这对许多人有用。
然后,我将整个文件夹设为不是只读属性,因为这有助于另一个用户。
最后,我彻底卸载了 SourceTree——但问题完全相同。
为了解决问题,我尝试重启电脑。
有人说这可能是由于Visual Studio源代码控制出了问题,所以我按照以下步骤操作,但没有解决问题:
依次选择:工具 > 选项 > 源代码控制
将“当前源代码控制插件”选择为“无”
我决定尝试另一个项目,结果发现它们也都无法正常运行(我有4个不同的项目,它们现在都无法正常工作,每次我尝试暂存任何东西时都会出现相同的错误)。
现在处于完全混乱状态,我决定彻底解决这个问题。我删除了我拥有的每个SourceTree项目,并摧毁了本地项目。然后,我新建了一个git仓库,将其导入到BitBucket中,并再次卸载和重新安装了SourceTree。这是我为了“重新开始”能够做的最好的事情。然后,我将未提交更改的Unity项目复制到空的本地克隆项目的Assets、Library和Project设置文件夹中。在Unity中设置版本控制为可见的元文件和强制文本,并试图将这些文件提交到我的全新空仓库中,但错误仍然存在。
我知道类似的问题以前已经被问过了,但我相信我已经尝试了所有可能的解决方案。
每当我尝试暂存时,都会出现红色进度条的错误消息,只有在手动点击关闭按钮后,才会看到一个消息,上面写着“取消暂存文件”,并伴随着绿色的进度条和“成功完成”的提示。我观察了打开的.git文件夹,发现当SourceTree尝试进行暂存操作时,它确实会短暂地创建index.locked文件,但总是在创建后不久删除它(甚至可以说在毫秒级别内就会消失)。
我使用的是SourceTree版本1.9.6.0,我在4号更新了它(2天前),那天晚上和第二天早上都能正常使用。但是在5号晚上我在Unity中进行了几个脚本和场景的更改,从那时起就无法使用了。我正在使用Windows 10,使用的是Unity 5.0.4f3。
非常感谢任何帮助。