4

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

git tag -l

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

4

3 回答 3

8

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

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

请参阅“显示提交的原始分支”,结合“ Git - 如何判断标签指向哪个提交”。
(即,与 的git rev-parse <tag>~0组合git branch --contains <sha1>

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

于 2012-07-10T05:48:15.733 回答
6

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

于 2012-07-10T01:02:38.110 回答
0

尝试这个:

branch=$(git for-each-ref | grep ${commit_num} | grep origin | sed "s/.*\///")
于 2019-11-04T13:29:51.160 回答