是否有一个git branch
选项将打印所有分支没有分支名称前面的两个空格?我认为--porcelain
会受到支持,但显然不适合分支上市。
我正在尝试做什么:我想编写删除合并分支的脚本,而不使用像awk
那样的低级正则表达式操作,或者在我的情况下使用perl(这样我的脚本优雅且可读):
git branch | perl -pe 's{^\s*}{}g' | xargs -n 1 git branch -d
(关闭主题,但对于那些倾向于囤积和讨厌删除的人来说,这是一个很好的快速方法来清除你真正不需要的东西并保持一个干净的回购)
您可以使用git for-each-ref
为存储库中的每个匹配引用获取一些字符串:
git for-each-ref refs/heads --format "%(refname:short)"
要么
git for-each-ref refs/heads --format "%(refname:strip=2)"
您也可以直接使用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