识别转义字符

Identifying an escaped character

我有一个方便的小别名,用于删除任何已合并到当前 b运行ch 中的 Git b运行ches:

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 字符,我该如何摆脱它?

它是你本地机器上的东西 -
我在 windows 和 Unix 上都试过了,对我来说效果很好。

检查 .gitconfig 文件的内容。

你应该有类似的东西

[color]
    ui = auto

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