在我在终端中运行的每个命令之后看到“致命:拒绝将 HEAD 指向 refs/ 之外”

问题描述

我有几个星期没有使用终端了,在运行“Brew Upgrade”来升级/更新我的所有软件包后,我开始看到“致命:拒绝将 HEAD 指向 refs/ 之外的每个命令”。我不太熟悉终端或 Git,所以我不知道这意味着什么,请提供一些建议/场景,说明为什么会发生这种情况。

解决方法

我敢打赌,您使用的是 fish shell,并在您运行 brew upgrade 时升级到了 3.3.0 版。

我还敢打赌,您有一个自定义提示,运行带有使用抑扬符变音符号 (^) 进行错误重定向的命令。这不再是有效的语法:

默认情况下已禁用使用 ^ 字符重定向到标准错误。它可以使用 stderr-nocaret 功能标志重新打开,但最终将被完全禁用 (#7105)。

解决方案是将配置中用于错误重定向的所有 ^ 替换为 2>

例如:

git symbolic-ref HEAD ^/dev/null

变成

git symbolic-ref HEAD 2>/dev/null

全部归功于 Njke 上的 this GitHub issue