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

Ric*_* H. 2 fish

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

Gui*_*gis 8

我敢打赌,您正在使用fishshell,并在运行brew upgrade.

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

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

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

例如 :

git symbolic-ref HEAD ^/dev/null
Run Code Online (Sandbox Code Playgroud)

变成

git symbolic-ref HEAD 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

此 GitHub 问题上的所有功劳都归功于 Njke

  • 为了完成答案,在我的配置中,负责的文件是提示配置“~/.config/fish/functions/fish_prompt.fish”。可以通过以下过程更正此文件:运行“fish_config”,检查当前使用的提示符,然后再次选择它(可能在将其更改为随机其他提示符之后)。这将使用包管理器更新的新版本重新创建文件。我想知道为什么这个文件是软链接的副本,但嘿,就是这样。 (2认同)