【问题标题】:Git: what is extra chars at the end of git branch name "?[m"?Git:git分支名称“?[m”末尾的多余字符是什么?
【发布时间】:2020-06-27 06:56:17
【问题描述】:

无法删除所有本地分支。 最后附加了一些特殊字符,git抛出以下错误:

git branch | grep -v "develop" | xargs git branch -D

error: branch 'anjum_br?[m' not found.
error: branch 'deploy_doc?[m' not found.
error: branch 'deploy_doc_fix?[m' not found.

【问题讨论】:

  • 如果 ? 被替换为 ESC 键 (0x1b),这看起来很像 vt100 转义序列
  • 检查 git colourize 设置,stackoverflow.com/questions/10998792/…。理论上,当你管道时,“自动”模式应该关闭

标签: linux git git-bash


【解决方案1】:

我建议您运行 git branch | grep -v "develop" | od -xcb 以更好地表示您所看到的内容。 ESC [ m(相当于ESC [ 0 m)是重置图形再现(着色和其他属性)的终端序列。

您要查找的是十六进制 1b 或八进制 033

如果 是这种情况,那么很有可能是某些东西拦截了您的流并将这些转义序列注入其中。最可能的原因是您的color.ui 被设置为always,如下面的转储所示,当我设置该标志时:

0000340    6d5b    200a    6d20    7361    6574    1b72    6d5b    000a
          [   m  \n           m   a   s   t   e   r 033   [   m  \n
        133 155 012 040 040 155 141 163 164 145 162 033 133 155 012

在这种情况下,您可以在输出流中看到转义序列033 [ m。将该标志设置为auto 如果检测到输出被发送到终端,则应使用颜色,否则不使用颜色:

git config --global color.ui auto

【讨论】:

  • 感谢@paxdiablo 确实是问题所在,将其设置为自动后问题得到了解决。
  • @KarthikV,所以大概这将是一个很好的理由来支持/接受答案,是吗? :-)
  • 啊啊!我昨天忘记打开我的always 设置,今天早上,当我使用我的脚本推送时,得到了fatal: remote part of refspec is not a valid name in ?[32mpax-adb9999-fix-device-using-stale-data?[m。可以确认我的回答也解决了这个问题:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-02
  • 1970-01-01
  • 2015-12-23
  • 1970-01-01
  • 2015-11-14
相关资源
最近更新 更多