为什么git总是告诉我“在后台自动打包存储库以获得最佳性能”?


100

注意:我认为这是此问题的重复部分,它是在讨论非后台程序包,它挂起 git 并带有细微的错误消息


在我的一个git存储库中,每次调用(例如)时git fetch,git都会输出:

Auto packing the repository in background for optimum performance.
See "git help gc" for manual housekeeping.

如果我git fetch反复进行,即使没有任何变化也无事可做,它似乎每次都打印此内容git fetch。这对我来说没有多大意义。其他网络操作(例如git push和)也似乎发生了这种情况git pull

该命令立即返回到提示符,没有任何其他输出,并且我找不到在我的计算机上运行的任何git进程。这似乎仅在此存储库中发生,并且仅在此计算机上发生。git config -l | grep gc什么也不返回。

我该怎么做才能诊断或解决此问题?

$ git --version 
git version 2.0.1

我正在使用OS X 10.9。


它看起来像与您链接的问题相同的问题,但是发生的速度足够快而不会挂起。
Holloway 2015年


特伦戈,我不这么认为。错误消息略有不同-提及“背景”。
安德鲁·费里尔

Trengot,对不起,您是对的,这是相关的(第二个链接)。感谢您的指点,有关详细信息,请参见下面的答案。
安德鲁·费里尔

Answers:


167

我从您提供的第二条评论Trengot中找到了解决方案,谢谢。事实证明,我有一些悬空的斑点,它们在其中.git/objects/17并因此触发了包装:

$ git fsck
dangling blob d9ff0aeac4aa8b4e0907daed675ebf60278bc977
dangling blob dbff2d073741f9775c815d4a3c623736af224dad
dangling blob e1ffbab1c5b985cd1cd3bc0281075ea2ed80744a
dangling blob fdff59878ccb3a75689f4acca615cfb635288774

这清理了他们:

$ git gc --prune=now

请注意,按照下面的Henrik的评论,这可能有点危险。照顾自己!


19
谢谢!这似乎对我有用。请注意,--prune=now这有点危险。默认情况下,--prune它将保留2周的悬空斑点,这意味着,如果您意外在5分钟前进行了错误的变基,或者昨天删除了一个分支,则可以恢复。一旦运行此命令,您将失去所有悬而未决的博客,直到现在-而不是2周前。另外,似乎您永远不要在另一个终端中执行其他Git命令时运行它,否则您的存储库可能会损坏。
Henrik N

3
您保存了我的一天
Owen Chen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.