【问题标题】:Why does git keep telling me it's "Auto packing the repository in background for optimum performance"?为什么 git 一直告诉我它是“在后台自动打包存储库以获得最佳性能”?
【发布时间】:2015-04-22 10:13:03
【问题描述】:

注意:我认为这是 this question 的重复,它是在谈论一个 挂起的非背景包> 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 pushgit pull

该命令立即返回提示,没有进一步的输出,我找不到任何 git 进程在我的机器上运行。它似乎只发生在这个存储库中,并且只发生在这台机器上。 git config -l | grep gc 不返回任何内容。

我可以做些什么来诊断或解决这个问题?

$ git --version 
git version 2.0.1

我使用的是 OS X 10.9。

【问题讨论】:

  • 它看起来与您链接的问题相同,但发生的速度足够快,不会出现挂起。
  • 特伦戈特,我不这么认为。错误消息略有不同 - 它提到了“背景”。

标签: git background-process packing


【解决方案1】:

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

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

这清理了它们:

$ git gc --prune=now

请注意,根据 Henrik 在下面的评论,这可能有点危险。保重!

【讨论】:

  • 谢谢!这似乎对我有用。请注意--prune=now 有点危险。默认情况下,--prune 将保留 2 周的悬空 blob,这意味着如果您在 5 分钟前不小心做了不正确的 rebase,或者昨天删除了一个分支,您可以恢复。运行此命令后,您将丢失所有悬空的博客,直到现在——而不是 2 周前。此外,seems 就像你永远不应该在另一个终端中执行其他 Git 命令时运行它,否则你的 repo 可能会损坏。
  • 以前从未发生过。对我来说,由“git clean -fd”工作。奇怪,但可能是因为未跟踪的文件。
猜你喜欢
  • 2012-01-27
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 2019-02-26
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多