我首先将repo sync同步到分支名称myBranch的清单。然后我从
获取标签git tag -l
现在我想知道使用git,因为git tag -l获得的每个标签实际上是在哪个分支上创建的。请注意:我不希望myBranch作为输出,而是创建标记的远程分支名称。
答案 0 :(得分:3)
撇开分支可以随时重命名或删除的事实(不丢失任何提交,仍可在另一个分支的路径中引用),您可以做的最好的事情是:
请参阅“Show the original branch for a commit”,并结合“Git - how to tell which commit a tag points to”
(即git rev-parse <tag>~0
与git branch --contains <sha1>
)
这与创建标签的分支无关,而是与当前引用所述标记的分支无关。
答案 1 :(得分:2)
没有这样的事情。标签指向提交,而分支指向提交。单个提交可以指向(或者是其父级)数十个不同的分支;没有办法将一个特定分支缩小为“此标记的所有者”。在您获取分支之前,分支可能已从上游删除,并且仅保留提交,这是为什么这不起作用的另一个示例。
答案 2 :(得分:0)
尝试一下:
branch=$(git for-each-ref | grep ${commit_num} | grep origin | sed "s/.*\///")