2016-07-04 49 views
0

我有删除已合并到当前分支任何的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性格和我怎样才能摆脱它?

+0

可能是一个ansi/vt终端转义序列。 –

+1

@MarcB事实上,这是一个转义序列。但为什么会造成这种麻烦? –

+2

这可能是输出某种颜色的尝试。虽然我确实认为这是一个回归,但尝试'git branch --no-color' – kostix

回答

3

检查你的.gitconfig文件的内容。

你应该有类似

[color] 
    ui = auto 

,它应该禁用颜色时输出到管道。

+0

这就是答案。使用'--no-color'标志作为@kostix提到了诀窍。谢谢! – LandonSchropp

+0

实际上,我们应该调用'git config --get color.ui'来解决 - 因为大多数设置都可以来自三种配置源中的任何一种。 – kostix

+0

@LandonSchropp,所以你把'color.ui'设置为'true'而不是'auto',对吗? – kostix

1

它是你的本地计算机上的东西 -
我已经尝试过了无论在Windows和Unix,它为我工作得很好。

enter image description here

+1

是的,你是对的。就像Diego所说的那样,它总是“ui = always”。 – LandonSchropp