识别转义字符

时间:2016-07-04 18:52:42

标签: git bash zsh

我有一个方便的小别名来删除任何已合并到当前分支的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可能会添加一个隐藏的角色,所以我跑了git branch --merged | grep -v "\*" | cat -v,这就是结果:

  blah^[[m

什么是^[[m字符,如何摆脱它?

2 个答案:

答案 0 :(得分:3)

检查.gitconfig文件的内容。

你应该有像

这样的东西
[color]
    ui = auto

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

答案 1 :(得分:1)

它是您本地机器上的东西 -
我在Windows和Unix上都尝试过它,它对我来说很好。

enter image description here