为什么 git 显示“--merged”/“--no-merged”而不是分支名称?

时间:2020-12-21 11:35:29

标签: git branch git-merge git-branch

Git 分支显示 -merged-no-merged 而不是分支名称。

如何禁用此功能并查看实际的分支名称?

Git branch

1 个答案:

答案 0 :(得分:0)

您的屏幕截图(我手动重新输入,因此可能会引入各种错误)似乎显示以下内容:

$ git branch
  german
* master
  newAutosuggest
  release-candidate
  release_v3.1.2
  â<U+0080>-merged
  â<U+0080>-no-merged
  â<U+0080>-merged
  -no-merged

带有 master 的那一行是绿色的(对于当前分支来说是正常的),带有 <U+0080> 的那一行的那部分是反视频打印的,这表明你的寻呼机已经突出显示了这一点,暗示它是不可打印字符的扩展。

â(Unicode LATIN SMALL LETTER A WITH CIRCUMFLEX,U+00E2)字符和扩展的 U+0080 表示您有使用非 ASCII 字符的分支名称。

名称 â<U+0080>-mergedâ<U+0080>-merged 在视觉上看起来相同,我将它们输入为两个相同的名称,但这应该是不可能的。在我看来,至少一个明显的连字符 - 字符实际上是一个短划线 U+2013 字符。这也可以解释 -no-merged 名称的外观:如果至少前导连字符,也许两个连字符,实际上是短划线字符,而不是连字符,它们将可用作 Git 分支名称。

删除这些名称可能容易也可能困难,这取决于您对 Unicode 的熟悉程度以及对生成正确 Unicode 字节序列的工具的访问权限。这也可能取决于您的操作系统是否确实使用 Unicode。

如果所有其他方法都失败了,请考虑直接“在 Git 背后”工作,就像处理 .git/refs/ 目录中的文件和/或单个文件 .git/packed-refs 一样。如果您手动编辑这些打包引用文件,请非常小心:确保您的编辑器没有将所有内容转换为 UTF-16-LE 编码(Microsoft 的最爱),也没有插入无意义的字节订单标记。

请注意,在 Git 背后的其他程序(直接进入存储库并在不询问或通知 Git 的情况下更改内容)可以创建名称包含无效连字符的分支。如果发生了这种情况,修复它的方法是再次回到 Git 背后。

相关问题