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

问题描述 投票:1回答:2

是否有一个git branch选项将打印所有分支没有分支名称前面的两个空格?我认为--porcelain会受到支持,但显然不适合分支上市。

我正在尝试做什么:我想编写删除合并分支的脚本,而不使用像awk那样的低级正则表达式操作,或者在我的情况下使用perl(这样我的脚本优雅且可读):

git branch | perl -pe 's{^\s*}{}g' | xargs -n 1 git branch -d

(关闭主题,但对于那些倾向于囤积和讨厌删除的人来说,这是一个很好的快速方法来清除你真正不需要的东西并保持一个干净的回购)

git bash git-branch
2个回答
1
投票

您可以使用git for-each-ref为存储库中的每个匹配引用获取一些字符串:

git for-each-ref refs/heads --format "%(refname:short)"

要么

git for-each-ref refs/heads --format "%(refname:strip=2)"

1
投票

您也可以直接使用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
© www.soinside.com 2019 - 2024. All rights reserved.