![](/img/trans.png)
[英]Git branch --merged / --no-merged and --squash option
[英]Why does git show “--merged” / “--no-merged” instead of branch names?
您的屏幕截图(我已手动重新输入,因此可能会引入各种错误)似乎显示以下内容:
$ 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.