我有这些分支:
refs/heads/master
refs/heads/feature/dummy
是否有本机git命令只能获取分支名称的最后部分? (master
,dummy
在上例中)
我已尝试git rev-parse --abbrev-ref HEAD
,但会获得master
和feature/dummy
答案 0 :(得分:2)
我认为没有一个,因为git允许在分支名称中使用正斜杠。请查看git-branch docs,了解branchname
的定义方式:
此外,请查看git-check-ref-format docs,了解如何在必要时限制此项(--allow-onelevel
)。
考虑到所有这些,我认为git将分支名称视为一个整体,包括斜杠,因此它不需要提供任何特定的命令来解析它,但是您始终可以将分支名称传递给另一个过滤掉它的工具。例如,this SO answer解决了这种情况。你可能需要使用类似的东西:value=${str#*/}
。
答案 1 :(得分:0)
以下内容似乎也可行:
$ git name-rev --name-only refs/heads/master
master
这似乎与您自己提出的rev-parse
解决方案非常相似。它也似乎适用于哈希,例如其中b51e7569
是master
指向的提交:
$ git name-rev --name-only b51e7569
master