【发布时间】:2016-12-12 19:13:15
【问题描述】:
在过去 6 个月左右的时间里,我使用 SourceTree 时遇到了一些问题,但我无法再将任何文件提交到 SourceTree。每当我尝试时,都会收到以下错误消息:
git -c diff.mnemonicprefix=false -c core.quotepath=false reset -q -- 资产/... 致命:无法创建“E:/Users/.../.git/index.lock”:文件存在。
如果当前没有其他 git 进程正在运行,这可能意味着 git 进程早些时候在这个存储库中崩溃了。确保没有其他 git 进程正在运行并手动删除文件以继续。
我知道其他问题,例如this one,并且我已经尝试了我认为人们建议解决此问题的所有方法。为了安全起见,我将与你们分享我尝试过但没有奏效的方法。
- 错误似乎相当明显 - 删除 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 中将版本控制设置为可见元文件并强制文本,然后将这些文件提交到我全新的 emtpy 存储库中,但错误仍然存在。
我知道以前有人问过类似的问题,但我相信我已经尽我所能尝试了所有可能的修复方法。
当我尝试暂存时,我收到带有红色条的错误消息,然后只有在手动点击关闭按钮后,我才会看到一条消息,上面写着“取消暂存文件”,带有绿色条和“已成功完成”。我查看了打开的 .git 文件夹,并注意到虽然 SourceTree 尝试暂存它确实会短暂创建 index.locked 文件,但它总是在创建后很快将其删除(我们在几毫秒内谈论它已经消失了)。
我使用的是 SourceTree 版本 1.9.6.0,我在 4 日(2 天前)更新到它,当晚和第二天早些时候它工作得很好。 5 日晚上,我在 Unity 中进行了几次脚本和场景更改,但从那以后一直没有奏效。我在 Windows 10 上,使用 Unity 5.0.4f3。
任何帮助将不胜感激。
【问题讨论】:
-
这个错误已被多次报告 (jira.atlassian.com/projects/SRCTREEWIN/issues/…)。令人难以置信的 QA 没有抓住这个……可能是时候继续使用 GitKraken 了。
标签: git version-control bitbucket unity5 atlassian-sourcetree