运行Git fetch origin时出现Git gc和Git prune警告

运行Git fetch origin时出现Git gc和Git prune警告,git,git-fetch,git-gc,Git,Git Fetch,Git Gc,使用远程存储库时,我在运行git fetch origin时开始收到这个消息 在后台自动打包存储库以获得最佳性能 请参阅“git help gc”了解手动内务管理 警告:上次gc运行报告了以下情况。请纠正根本原因 并删除.git/gc.log 在删除文件之前,不会执行自动清理 警告:有太多无法触及的松散物体;运行“git prune”删除它们 这种情况经常发生。我在某个地方发现了git-gc应该会有帮助,但它只工作一次(或者似乎工作过一次)——在这之后,我得到了以下git-fetch-origi

使用远程存储库时,我在运行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中的一个bug造成的。如果你有缺陷版本的Git,它会让太多松散的对象随着时间积累。1你可以而且应该将你的Git版本升级到不会让这些对象积累得如此严重的版本,但现在,在你不使用存储库做任何其他事情时,只需继续手动运行
Git prune
。然后在修剪完成后手动运行
git gc
。您可能还需要运行
rm.git/gc.log

(在Git升级之前,问题会不时出现。)


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


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

你有没有尝试过Git prune或Git gc——激进的?试着按照它说的去做。