识别标签属于git中的哪个分支

时间:2012-07-10 00:33:50

标签: git tags repository branch remote-branch

我首先将repo sync同步到分支名称myBranch的清单。然后我从

获取标签
git tag -l

现在我想知道使用git,因为git tag -l获得的每个标签实际上是在哪个分支上创建的。请注意:我不希望myBranch作为输出,而是创建标记的远程分支名称。

3 个答案:

答案 0 :(得分:3)

撇开分支可以随时重命名或删除的事实(不丢失任何提交,仍可在另一个分支的路径中引用),您可以做的最好的事情是:

  • 获取包含标记
  • 引用的提交的分支

请参阅“Show the original branch for a commit”,并结合“Git - how to tell which commit a tag points to” (即git rev-parse <tag>~0git branch --contains <sha1>

的组合

这与创建标签的分支无关,而是与当前引用所述标记的分支无关。

答案 1 :(得分:2)

没有这样的事情。标签指向提交,而分支指向提交。单个提交可以指向(或者是其父级)数十个不同的分支;没有办法将一个特定分支缩小为“此标记的所有者”。在您获取分支之前,分支可能已从上游删除,并且仅保留提交,这是为什么这不起作用的另一个示例。

答案 2 :(得分:0)

尝试一下:

branch=$(git for-each-ref | grep ${commit_num} | grep origin | sed "s/.*\///")