我想删除匹配的分支。
$ demon@bogon solo$ git branch |grep bug_ bug_1255 bug_1279 bug_1280 bug_1286 bug_1311 bug_1315 bug_1317 bug_1329 bug_1335 bug_1356 bug_1361 bug_1372 bug_1375 bug_1402 bug_1406 demon@bogon solo$ git branch |grep bug_ | xargs git branch -D error: branch 'bug_1255' not found. error: branch 'bug_1279' not found. error: branch 'bug_1280' not found. error: branch 'bug_1286' not found. error: branch 'bug_1311' not found. error: branch 'bug_1315' not found. error: branch 'bug_1317' not found. error: branch 'bug_1329' not found. error: branch 'bug_1335' not found. error: branch 'bug_1356' not found. error: branch 'bug_1361' not found. error: branch 'bug_1372' not found. error: branch 'bug_1375' not found. error: branch 'bug_1402' not found. error: branch 'bug_1406' not found. demon@bogon solo$ git branch -D bug_1406 Deleted branch bug_1406 (was 509e606).
demon@bogon solo$ git branch | grep bug_ | od -c
0000000 033 [ 0 1 ; 3 1 m 033 [ K b u g
0000020 _ 033 [ m 033 [ K 1 2 5 5 \n 033 [
0000040 0 1 ; 3 1 m 033 [ K b u g _ 033 [ m
0000060 033 [ K 1 2 7 9 \n 033 [ 0 1 ; 3
0000100 1 m 033 [ K b u g _ 033 [ m 033 [ K 1
0000120 2 8 0 \n 033 [ 0 1 ; 3 1 m 033 [
0000140 K b u g _ 033 [ m 033 [ K 1 2 8 6 \n
0000160 033 [ 0 1 ; 3 1 m 033 [ K b u g
0000200 _ 033 [ m 033 [ K 1 3 1 1 \n 033 [
0000220 0 1 ; 3 1 m 033 [ K b u g _ 033 [ m
0000240 033 [ K 1 3 1 5 \n 033 [ 0 1 ; 3
0000260 1 m 033 [ K b u g _ 033 [ m 033 [ K 1
0000300 3 1 7 \n 033 [ 0 1 ; 3 1 m 033 [
0000320 K b u g _ 033 [ m 033 [ K 1 3 2 9 \n
0000340 033 [ 0 1 ; 3 1 m 033 [ K b u g
0000360 _ 033 [ m 033 [ K 1 3 3 5 \n 033 [
0000400 0 1 ; 3 1 m 033 [ K b u g _ 033 [ m
0000420 033 [ K 1 3 5 6 \n 033 [ 0 1 ; 3
0000440 1 m 033 [ K b u g _ 033 [ m 033 [ K 1
0000460 3 6 1 \n 033 [ 0 1 ; 3 1 m 033 [
0000500 K b u g _ 033 [ m 033 [ K 1 3 7 2 \n
0000520 033 [ 0 1 ; 3 1 m 033 [ K b u g
0000540 _ 033 [ m 033 [ K 1 3 7 5 \n 033 [
0000560 0 1 ; 3 1 m 033 [ K b u g _ 033 [ m
0000600 033 [ K 1 4 0 2 \n
0000610
demon@bogon solo$ git branch |grep bug_ | xargs echo git branch -D
git branch -D bug_1255 bug_1279 bug_1280 bug_1286 bug_1311 bug_1315 bug_1317 bug_1329 bug_1335 bug_1356 bug_1361 bug_1372 bug_1375 bug_1402
demon@bogon solo$ git branch |grep bug_ | xargs -n 1 git branch -D
error: branch 'bug_1255' not found.
error: branch 'bug_1279' not found.
error: branch 'bug_1280' not found.
error: branch 'bug_1286' not found.
error: branch 'bug_1311' not found.
error: branch 'bug_1315' not found.
error: branch 'bug_1317' not found.
error: branch 'bug_1329' not found.
error: branch 'bug_1335' not found.
error: branch 'bug_1356' not found.
error: branch 'bug_1361' not found.
error: branch 'bug_1372' not found.
error: branch 'bug_1375' not found.
error: branch 'bug_1402' not found.
答案 0 :(得分:7)
我问你是否强行打开了颜色,答案似乎是肯定的。
要修复,请找到您的~/.gitconfig
并将颜色更改为更多:
[color]
ui = auto
这不会强制彩色输出;如果输出进入管道,则着色被丢弃。
答案 1 :(得分:1)
您的问题不是OSX或xargs
mycroft:msg sja$ git branch bug
mycroft:msg sja$ git branch
bug
* master
mycroft:msg sja$ git branch | grep bug | xargs git branch -D
Deleted branch bug (was 32c55a4).
mycroft:msg sja$ git branch
* master
mycroft:msg sja
mycroft:msg sja$ git branch bug_xxx
mycroft:msg sja$ git branch | grep bug_xxx | xargs git branch -D
Deleted branch bug_xxx (was 32c55a4).
mycroft:msg sja$ git branch
* master
mycroft:msg sja$
答案 2 :(得分:0)
您可以使用-o
的{{1}}选项仅打印行的匹配部分。
grep
$ git branch | grep -Eo "bug_[0-9]+" | xargs git branch -D
打印没有着色字符的分支名称。
我找到了更简单的解决方案。试试grep -Eo "bug_[0-9]+"
选项。
--no-color