首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从GIT标签中读取标记器信息?

如何从GIT标签中读取标记器信息?
EN

Stack Overflow用户
提问于 2010-11-15 23:29:12
回答 2查看 25.7K关注 0票数 30

到目前为止,我有:

代码语言:javascript
复制
git rev-parse <tagname> | xargs git cat-file -p

但这并不是最容易解析的事情。我希望能有类似于git-log--pretty选项,这样我就可以抓取我需要的信息了。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-10 07:17:16

获取相同信息的一个更直接的方法是:

代码语言:javascript
复制
git cat-file tag <tagname>

这将使用单个命令并避免使用管道。

我在一个bash脚本中使用了它,如下所示:

代码语言:javascript
复制
if git rev-parse $TAG^{tag} -- &>/dev/null
then
    # Annotated tag
    COMMIT=$(git rev-parse $TAG^{commit})
    TAGGER=($(git cat-file tag $TAG | grep '^tagger'))
    N=${#TAGGER} # Number of fields
    DATE=${TAGGER[@]:$N-2:2} # Last two fields
    AUTHOR=${TAGGER[@]:1:$N-3} # Everything but the first and last two
    MESSAGE=$(git cat-file tag $TAG | tail -n+6)
elif git rev-parse refs/tags/$TAG -- &>/dev/null
then
    # Lightweight tag - just a commit, basically
    COMMIT=$(git rev-parse $TAG^{commit})
else
    echo "$TAG: not a tag" >&2
fi
票数 40
EN

Stack Overflow用户

发布于 2010-11-15 23:30:58

git show $TAG将向您显示标记的信息以及它所指向的提交。

如果你有一些已经为你工作的东西,但是输入起来不方便,你总是可以设置一个别名:

代码语言:javascript
复制
[alias]
        showtag = !sh -c 'git rev-parse $1 | xargs git cat-file -p' -

并使用以下命令调用它:

代码语言:javascript
复制
$ git showtag my-tag-name
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4185888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档