识别转义字符
我有删除已合并到当前分支任何的Git分支一个方便的小别名:识别转义字符
alias git_delete_merged_branches='git branch --merged | grep -v "\*" | xargs -n 1 git branch -d'
这一直工作正常,直到我更新到最新版本的Git( 2.9),它突然退出与此错误的工作:
error: branch 'blah' not found.
如果我跑git branch --merged | grep -v "\*"
,我得到下面的输出:
blah
这似乎是正确的,如果我运行echo " blah\n" | xargs -n 1 git branch -d
一切工作正常。我怀疑有可能是通过GIT中获取添加一个隐藏的角色,所以我跑这是结果:
blah^[[m
什么是^[[m
性格和我怎样才能摆脱它?
检查你的.gitconfig文件的内容。
你应该有类似
[color]
ui = auto
,它应该禁用颜色时输出到管道。
这就是答案。使用'--no-color'标志作为@kostix提到了诀窍。谢谢! – LandonSchropp
实际上,我们应该调用'git config --get color.ui'来解决 - 因为大多数设置都可以来自三种配置源中的任何一种。 – kostix
@LandonSchropp,所以你把'color.ui'设置为'true'而不是'auto',对吗? – kostix
可能是一个ansi/vt终端转义序列。 –
@MarcB事实上,这是一个转义序列。但为什么会造成这种麻烦? –
这可能是输出某种颜色的尝试。虽然我确实认为这是一个回归,但尝试'git branch --no-color' – kostix