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