如何解决“在后台自动打包存储库以获得最佳性能”失败并出现奇怪的取消链接错误
最近几次我通过 TortoiseGit 提交了对本地存储库的更改,我看到此消息持续了 30-60 秒:
在后台自动打包存储库以获得最佳性能。
这里解释了这意味着什么:What does "Auto packing the repository for optimum performance" mean?
但大约 60 秒后,我收到了大量这些错误:
--------------------------- 取消文件 '.git/objects/pack/pack-03733367d688c04acc63242e5034df85184933e5.pack' 的链接 失败的。我应该再试一次吗?
我不知道有多少,因为我总是放弃,当我杀死 TortoiseGit 时,当我检查日志时,提交似乎已正确执行。
我该怎么办?我可以让 Git 尝试单独执行此打包,因为我担心我的更改会损坏吗?
解决方法
“自动打包存储库”消息意味着 Git 正在运行 git gc --auto
以打包存储库中的数据以提高效率。一旦对象被打包到打包文件中,松散的对象(如错误消息中的对象)就不再需要并被删除。
通常,这可以正常工作。但是,Windows 有一个有意的设计决策,即通常无法删除正在使用的文件。此消息意味着 Git 正在尝试删除不再需要的文件,但它无法这样做,因为其他程序正在使用它,而 Windows 不允许这样做。这个问题不会损害您存储库的完整性,但会造成浪费和低效,而且无法删除松散文件的事实意味着 git gc
将继续频繁运行。
您需要找到访问您的存储库的每个程序,无论是 GUI、编辑器还是其他程序,然后退出,然后进入 Git Bash,将目录更改为您的存储库,然后运行 {{1} }.如果这不起作用,您可以尝试重新启动计算机以关闭所有未使用的程序,然后运行 git gc
。这也可能是由第三方防病毒软件或其他监控系统的软件引起的,在这种情况下,您应该完全卸载它,重新启动,然后切换到 Windows Defender。
不幸的是,没有其他方法可以解决这个问题,因为这是 Microsoft 有意的设计决定,尽管它是一种草率的决定。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。