是否可以使用Git检索仅存在于某个分支中的标记列表?

Wol*_*urs 7 tags git branch

我想知道在Git中是否可以检索标签列表(很像git tag命令的结果),但列表应该仅限于某个分支.

如果可以,有人可以解释这是怎么做的吗?也许有一些模式匹配魔法?

lar*_*sks 5

我想这会做你想要的:

 git log --pretty='%H' <branch> |
   xargs -n1 git describe --tags --exact-match 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

这用于git log获取分支中的提交列表,然后将它们传递给它们git describe以查看它们是否对应于标记.


Von*_*onC 5

使用新的 git 标签选项--merged(在 git 2.7+,2015 年第 4 季度中)可以使用另一种方法

git tag --merged <abranchname>
Run Code Online (Sandbox Code Playgroud)

请参阅Karthik Nayak ( ) 的commit 5242860 , ... (2015 年 9 月 10 日)(由Junio C Hamano合并-- --提交 8a54523 中,2015 年 10 月 5 日)KarthikNayak
gitster

tag.c:实现“--merged”和“--no-merged”选项

使用“ ref-filter” API 将“ --merged”和“ --no-merged”选项实现到“ tag.c”中。

  • ' --merged' 选项允许用户只列出合并到命名提交中的标签。
  • ' --no-merged' 选项允许用户仅列出未合并到命名提交中的标签。

如果未提供对象,则它假定HEAD为对象。