如何列出给定分支所包含的标签,与之相反:
git tag --contains <commit>
Run Code Online (Sandbox Code Playgroud)
哪个"仅列出包含指定提交的标记".
如果这样的事情不存在,我如何测试另一个提交是否包含提交,以便我可以编写脚本?
我能做到这一点:
commit=$(git rev-parse $branch)
for tag in $(git tag)
do
git log --pretty=%H $tag | grep -q -E "^$commit$"
done
Run Code Online (Sandbox Code Playgroud)
但我希望有更好的方法,因为这可能需要很长时间才能在具有许多标记和提交的存储库中.
小智 71
git tag --merged <branch>
Run Code Online (Sandbox Code Playgroud)
从手册页:
--[no-]merged <commit>
Only list tags whose tips are reachable, or not reachable if --no-merged is used, from the specified commit (HEAD if not specified).
Run Code Online (Sandbox Code Playgroud)
我相信这个选项最近才被添加 - 当提出原始问题并提出上述答案时,肯定无法提供.由于这个帖子仍然是谷歌的第一个问题,我认为我会把它扔给任何向下滚动到底部的人寻找一个答案,这个答案涉及的打字少于接受的答案(当我忘记时我自己参考)下周再次回答这个问题).
Chr*_*sen 41
这可能接近你想要的:
git log --simplify-by-decoration --decorate --pretty=oneline "$committish" | fgrep 'tag: '
Run Code Online (Sandbox Code Playgroud)
但是,更常见的情况是找到最新的标签:
git describe --tags --abbrev=0 "$committish"
Run Code Online (Sandbox Code Playgroud)
--tags
将搜索轻量级标签,如果您只想考虑带注释的标签,请不要使用它.--abbrev=0
,如果你想也看到了通常"的'承诺在最前’号和缩写哈希"后缀(如v1.7.0-17-g7e5eb8).小智 12
列出当前分支上可到达的所有标记:
git log --decorate=full --simplify-by-decoration --pretty=oneline HEAD | \
sed -r -e 's#^[^\(]*\(([^\)]*)\).*$#\1#' \
-e 's#,#\n#g' | \
grep 'tag:' | \
sed -r -e 's#[[:space:]]*tag:[[:space:]]*##'
Run Code Online (Sandbox Code Playgroud)
我没有足够的声誉来评论其他人的帖子,但这是对答案及其评论的回应/sf/answers/538874941/.为了显示当前分支可以访问的所有标记,包括HEAD提交中的标记,您可以使用以下内容:
git log --decorate --oneline | egrep '^[0-9a-f]+ \((HEAD, )?tag: ' | ssed -r 's/^.+tag: ([^ ]+)[,\)].+$/\1/g'
Run Code Online (Sandbox Code Playgroud)
一个警告 - 我使用super sed,所以你可能需要将我的"ssed"改为sed.
对于它的地狱,这是在PowerShell中:
git log --decorate --oneline | % { if ($_ -match "^[0-9a-f]+ \((HEAD, )?tag: ") { echo $_} } | % { $_ -replace "^.+tag: ([^ ]+)[,\)].+$", "`$1" }
Run Code Online (Sandbox Code Playgroud)
- -一个
所有答案仅列出标签,但如果您希望按时间顺序排列,则需要添加--sort=taggerdate
或示例:
git tag --merged release/11.x --sort=taggerdate
studio-1.4
llvmorg-10-init
llvmorg-11-init
llvmorg-11.0.0-rc1
llvmorg-11.0.0-rc2
llvmorg-11.0.0-rc3
llvmorg-11.0.0-rc4
llvmorg-11.0.0-rc5
llvmorg-11.0.0-rc6
llvmorg-11.0.0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
61040 次 |
最近记录: |