【问题标题】:Git gc and git prune warnings when git fetch origin is run运行 git fetch origin 时出现 Git gc 和 git prune 警告
【发布时间】:2021-08-10 07:09:21
【问题描述】:

使用远程存储库时,我在运行git fetch origin 时开始收到此信息

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

请参阅“git help gc”了解手动内务管理。

警告:最后一次 gc 运行报告了以下内容。请更正根本原因 并删除 .git/gc.log。

在删除文件之前不会执行自动清理。

警告:无法访问的松散对象太多;运行 'git prune' 删除它们。

这种情况一直在发生。我在某处发现 git gc 应该有所帮助,但它只能工作一次(或似乎工作) - 在此之后并跟随 git fetch origin 我得到

在后台自动打包存储库以获得最佳性能。 请参阅“git help gc”了解手动内务管理。

后来情况重演。我还尝试删除 .git/gc.log - 它没有帮助。

我的 git 技能真的很有限。为什么我会收到此警告以及如何长期解决此问题?

【问题讨论】:

  • 你试过git prunegit gc --aggressive吗?
  • 尝试做它所说的尝试做。

标签: git git-fetch git-gc


【解决方案1】:

这个特殊问题是由于 Git 中的一个错误(在 2.20.0 中首次应用了一个修复程序:参见 commit 3029970275b473dbf62149887a19a6b4879528d7,它很好地描述了正在发生的事情,但也参见 commit 095c741edd1d9604b6c285000a836721fd69f051,它有一个贡献效应,并在 Git 2.17 中修复)。如果您有错误版本的 Git,它会让太多松散的对象随着时间的推移而累积。1您可以并且应该将您的 Git 版本升级到不会让这些对象累积得如此糟糕的版本,但是对于现在,继续并手动运行git prune当您没有对存储库执行任何其他操作时。然后在修剪完成时手动运行git gc。您可能还需要运行 rm .git/gc.log

(问题会不时出现,直到 Git 升级为止。)


“松散”的物体是正常的。它们的对立面是“打包”的对象,它们的存储效率更高。通常git gc 会不时自动运行并通知何时是打包松散物品的好时机。包装过于频繁会降低效率;包装不够经常会降低效率; git gc应该找出正确的时间。但是某些 Git 版本有一段时间会出现此问题,导致出现您观察到的问题。

这不是一个问题:它只是意味着 Git 的效率低于(运行速度更慢),如果它没有被破坏的话。

【讨论】:

  • 如果没有任何关于受影响的 git 版本的信息,或者至少是关于问题的更多信息,例如错误报告的链接,这不是很有帮助。事实上,任何人都无法知道您提到的错误是否是他们问题的原因。
  • @DanielMcIntosh:实际情况相当复杂。最初的 fix 在 2.20.0 中。无论如何,正如我所说,这并不是一个真正的问题。你知道你拥有它的方式是你得到问题中描述的投诉顺序。如果您收到其他投诉,则说明您有一些不同的错误。不过,我会链接到修复程序。
  • 感谢更新
猜你喜欢
  • 2013-12-05
  • 2016-08-06
  • 2016-10-06
  • 2014-02-27
  • 2015-03-19
  • 2020-07-27
  • 2016-12-15
  • 2018-10-12
  • 2014-02-14
相关资源
最近更新 更多