2016-07-04 88 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