没有缩进空白的git分支输出?(除了正则表达式操作)



是否有一个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)"

最新更新