列出所有没有星号的本地git分支

40

如果我运行git branch,会得到像下面这样的输出:

* master
  dev
  foo
如果我执行git branch -r命令,它将显示远程的所有分支,但不会显示星号(星号表示我当前检出的分支)。
我该如何列出所有本地分支,而不显示星号?我需要一个编程解决方案,以便我可以逐行读取结果。

你可以使用正则表达式来修剪前导空格并删除星号。我相信你正在使用的编程语言可以实现这一点。 - tangoal
5
可以这样做,但那几乎肯定不是最好的方法。Git的作者将其命令松散地分为他们所谓的plumbingporcelain。一个plumbing命令是用于其他命令使用的,而一个porcelain命令是用于人类使用的。因此,plumbing命令的输出通常最适合作为输入提供给另一个程序,而不是供人查看。 git for-each-ref 是实现 git branch --listgit tag --list 和其他几个命令的plumbing命令。 - torek
这是方法:https://dev59.com/Xm865IYBdhLWcg3wYNdS#72170904 - poige
1个回答

44

您可以使用for-each-ref命令:

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

47
дҢ еЏҮд»ӨењЁrefnameдё­дә йЂ’:shortж€–lstrip=-1еЏ‚ж•°пәЊд»Өд»…иҺ·еЏ–分ж”ҮеђҚз§°гЂ‚дң‹е¦‚пәљgit branch --format='%(refname:short)'гЂ‚ - Johnny Willer
3
@JohnnyWiller提出的git branch --format建议也适用于包含斜杠的分支名称,而答案没有涉及此情况。 - Miles
6
一个快速而简单的解决方案是 git branch | cut -c 3-,谁不喜欢快速而简单的解决方案呢? - Vinicius Senna
4
使用refs/heads/**来包含带有斜杠的分支名称。 - Joey Adams
3
@JoeyAdams 只需省略任何 *,我也能正常工作:refs/heads - alecbz
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接