【问题标题】:"Auto packing the repository in background for optimum performance" fails with strange Unlink error“在后台自动打包存储库以获得最佳性能”失败并出现奇怪的 Unlink 错误
【发布时间】:2021-05-16 10:30:18
【问题描述】:

最近几次我通过 TortoiseGit 提交了对本地仓库的更改,我看到这条消息持续了 30-60 秒:

在后台自动打包存储库以获得最佳性能。

这里解释了这意味着什么:What does "Auto packing the repository for optimum performance" mean?

但是在大​​约 60 年代之后,我收到了大量这些错误:

--------------- 取消链接文件'.git/objects/pack/pack-03733367d688c04acc63242e5034df85184933e5.pack' 失败的。我应该再试一次吗?

我不知道有多少,因为我总是放弃,当我杀死 TortoiseGit 时,当我检查日志时,提交似乎已正确执行。

对此我能做些什么?我是否可以让 Git 尝试单独执行此打包,因为我担心我的更改会损坏?

【问题讨论】:

    标签: git tortoisegit


    【解决方案1】:

    “自动打包存储库”消息表示 Git 正在运行 git gc --auto 以在存储库中打包数据以提高效率。一旦将对象打包到打包文件中,松散的对象(如错误消息中的对象)就不再需要并被删除。

    通常,这可以正常工作。但是,Windows 有一个有意的设计决定,即通常无法删除正在使用的文件。此消息意味着 Git 正在尝试删除不再需要的文件,但它不能这样做,因为其他一些程序正在使用它而 Windows 不允许这样做。这个问题对你的仓库的完整性没有危害,但是浪费和低效,而且松散的文件不能被删除意味着git gc会继续频繁运行。

    您需要找到所有正在访问您的存储库的程序,无论是 GUI、编辑器还是其他程序,然后退出它,然后进入 Git Bash,将目录更改为您的存储库,然后运行 ​​git gc。如果这不起作用,您可以尝试重新启动计算机以关闭所有未使用的程序,然后运行git gc。也有可能是第三方杀毒软件或其他监控系统的软件造成的,此时应彻底卸载,重启,切换到Windows Defender。

    不幸的是,没有其他方法可以解决这个问题,因为这是 Microsoft 有意的设计决定,尽管是一个即兴的决定。

    【讨论】:

      猜你喜欢
      • 2012-01-27
      • 2015-04-22
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      相关资源
      最近更新 更多