繁体   English   中英

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

[英]Why does git show “--merged” / “--no-merged” instead of branch names?

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

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

Git 分支

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

$ 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 拉丁小写字母 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 最喜欢的),也没有插入无意义的字节顺序标记。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM