在过去 6 个月左右的时间里,在使用 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.
If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.
我知道其他问题,例如 this一个并尝试了我认为是关于人们建议解决这个问题的一切。为了安全起见,我将与大家分享我尝试过但没有奏效的方法。
- 这个错误似乎很明显——删除 index.lock 文件。问题是我没有。我什至通过 stash 的 .git 文件夹和命令提示符使用以下命令创建并删除了它:
cd .git
del index.lock
通过命令行没有找到文件,直到我创建了一个并删除它也无济于事。我尝试了从链接帖子中找到的其他命令行命令,但它们都不起作用。
我尽我所能确保没有其他程序同时运行 git(没有 IDE、没有 Xcode、没有 Tortoise、git-cola 等)。
我多次关闭 SourceTree 并重新打开它,因为这为很多人修复了它。
然后我将整个文件夹设置为非只读,因为它帮助了不同的用户。
然后我继续并完全卸载了 SourceTree - 同样的问题。
然后我重新启动了我的机器,因为这也是对某些人的修复。
我读到可能是 Visual Studio 源代码管理给我带来了问题,所以我按照这些步骤无济于事。
Go to: Tools > Options > Source Control
Select Current source control plug-in as: None
然后我想我会尝试一个不同的项目,发现它们也坏了(我有 4 个不同的项目,它们现在都坏了,无论何时我尝试上演任何东西我都会遇到同样的错误)。
现在一片困惑,我决定一劳永逸地解决这个问题。我删除了我拥有的每一个 SourceTree 项目,并删除了我的本地项目。然后我继续创建一个新的 git repo,将其导入 BitBucket,然后再次卸载并重新安装 SourceTree。这是我能为“重新开始”做的最好的事情。然后,我将保存了未提交更改的复制的 Unity 项目复制到空的本地克隆项目中的 Assets 、库和项目设置文件夹。在 Unity 中将版本控制设置为可见元文件并强制文本,然后将这些文件提交到我全新的 emtpy 存储库中,但错误仍然存在。
我知道之前有人问过类似的问题,但我相信我已经尽我所能并涵盖了所有最可能的修复方法。
当我尝试暂存时,我收到带有红色条的错误消息,然后只有在手动点击关闭按钮后,我才会看到一条消息,上面写着“取消暂存文件”,带有绿色条和“已成功完成”。我观察了打开的 .git 文件夹,注意到虽然 SourceTree 尝试暂存它,但它确实会短暂地创建 index.locked 文件,但它总是在创建后很快就删除它(我们说的是几毫秒内它就消失了)。
我正在使用 SourceTree 版本 1.9.6.0,我在 4 日(2 天前)更新到它,当晚和第二天早些时候它工作得很好。我在 5 号晚上在 Unity 中做了几个脚本和场景更改,但从那以后就没有用了。我在 Windows 10 上,使用 Unity 5.0.4f3。
如有任何帮助,我们将不胜感激。
最佳答案
今天升级后我遇到了确切的问题 - 准确无误 - 并尝试了与您完全相同的步骤。没有任何效果。所以我在这里找到了旧版本的源代码树:
https://www.sourcetreeapp.com/update/windowsupdates.txt
我回到了 1.8.3,它现在运行良好。
https://downloads.atlassian.com/software/sourcetree/windows/SourceTreeSetup_1.8.3.exe
1.9.5 可能可以,但我觉得回到 1.8.x 更安全
关于git - SourceTree 暂存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38805017/