获取没有前缀的git分支名称

时间:2018-05-17 08:40:38

标签: git git-branch

我有这些分支:

refs/heads/master
refs/heads/feature/dummy

是否有本机git命令只能获取分支名称的最后部分? (masterdummy在上例中)

我已尝试git rev-parse --abbrev-ref HEAD,但会获得masterfeature/dummy

2 个答案:

答案 0 :(得分:2)

我认为没有一个,因为git允许在分支名称中使用正斜杠。请查看git-branch docs,了解branchname的定义方式: enter image description here 此外,请查看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解决方案非常相似。它也似乎适用于哈希,例如其中b51e7569master指向的提交:

$ git name-rev --name-only b51e7569
master