是否有一个git branch
选项可以打印所有分支,而分支名称前面没有两个空格?我认为--porcelain
会得到支持,但显然不支持分支列表。
我想做的是:我想为合并分支的删除编写脚本,而不使用像awk
那样的低级别regex操作,或者在我的情况下使用perl(这样我的脚本就优雅可读了):
git branch | perl -pe 's{^s*}{}g' | xargs -n 1 git branch -d
(脱离主题,但对于那些倾向于囤积和讨厌删除的人来说,这是一个很好的快速方法,可以清除你真正不需要的东西并保持干净的回购)
您也可以直接使用git branch
。它可能在内部使用for-each-ref
。
要列出分支,请使用git branch --format "%(refname:short)"
。这不会输出*
。样本输出:
develop
master
bug-123-fix-issue
task-345-do-stuff
要输出星号,请使用git branch --format "%(HEAD)%(refname:short)"
。不幸的是,这在所有其他分支的开头创建了一个空间。样本输出:
*develop
master
bug-123-fix-issue
task-345-do-stuff
但是,您可以随心所欲地使用该命令,因此可以将其反转为末尾带有星号。它仍然包含空间,但在最后。
git branch --format "%(refname:short)%(HEAD)"
样本输出:
develop*
master
bug-123-fix-issue
task-345-do-stuff
您可以使用git for-each-ref
为存储库中的每个匹配引用获取一些字符串:
git for-each-ref refs/heads --format "%(refname:short)"
或
git for-each-ref refs/heads --format "%(refname:strip=2)"