我想知道在Git中是否可以检索标签列表(很像git tag
命令的结果),但列表应该仅限于某个分支.
如果可以,有人可以解释这是怎么做的吗?也许有一些模式匹配魔法?
我想这会做你想要的:
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
以查看它们是否对应于标记.
使用新的 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
为对象。