我正在使用标签来识别发布版本并识别任务的“开发完成”提交。做一个git tag
我得到一个如下的列表。
> git tag
v0.1.0
task_1768
task_2011
task_1790
task_1341
v0.1.1
task_2043
task_2311
v0.1.2
假设所有标签都指向master
分支上的提交,有没有办法列出自某个标签以来的所有标签?例如,要生成包含在v0.1.2
发布中的所有任务的列表——我正在寻找类似以下的内容(这不是实际命令)。
> git tag -l "task_*" --since v0.1.1
获得如下输出。
task_2043
task_2311
有没有办法做到这一点git tag
?
有没有办法做到这一点git rev-list
?
(或者其他一些 git 命令?)
更新
根据答案和评论,以下是我目前正在使用的。
> git log v0.1.1.. --decorate | grep -Eow 'tag: ([a-zA-Z0-9.-_]*)' | awk '{ print substr($0, 6); }'
task_2043
task_2311
v0.1.2
> git log v0.1.1.. --decorate | grep -Eow 'tag: ([a-zA-Z0-9.-_]*)' | awk '{ print substr($0, 6); }' | grep -Eo 'task_.*'
task_2043
task_2311
第二次更新
新选择的答案。这正是我最初想要的。优雅得多。
> git tag --contains v0.1.1
v0.1.1
task_2043
task_2311
v0.1.2
> git tag --contains v0.1.1 | grep -Eo 'task_.*'
task_2043
task_2311