Homebrew Update Fails: fatal: protocol error: bad pack header on git fetch

Homebrew Update Fails: fatal: protocol error: bad pack header on git fetch

当我尝试更新(或升级 brew)时出现以下错误:

#> brew update
Error:
  homebrew-core is a shallow clone.
To `brew update`, first run:
  git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
This command may take a few minutes to run due to the large size of the repository.
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
automatically to avoid repeatedly performing an expensive unshallow operation in
CI systems (which should instead be fixed to not use shallow clones). Sorry for
the inconvenience!

当我 运行 指示的命令时,我得到另一个错误:

#> git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
fatal: protocol error: bad pack header

我使用的是 macOS Big Sur V11.2.3。我有 BitDefender 作为防病毒软件。我尝试禁用它并 运行 上述命令但没有成功。任何帮助将不胜感激。

我发现一些页面表明这是由我的 ISP(英国的 Virgin Media)启用的“防病毒”软件设置引起的。我在 https://my.virginmedia.com/my-apps/onlinesecurity/websafe/settings 关闭了“病毒安全”,但这并没有解决我的问题。

然后,我打开了我的 VPN (NordVPN),导致问题的 brew 命令起作用了。

这件事今天发生在我身上(也在 Virgin Media 上)。使用 VPN 的另一种方法(特别是如果您不想付费)是将您选择的 DNS 服务器更改为免费的 public,例如 Google 的 as described here . Tldr;将它们设置为 8.8.4.48.8.8.8 之一或两者,命令应该可以工作。然后您可以(如果您愿意)改回路由器的默认值。

搜索了很久的解决方案,有人说这是内存问题(事实并非如此)。只有以上评论帮助我解决了 Virgin Media wifi 问题,所以我改用移动数据。