到目前为止,我有:
git rev-parse <tagname> | xargs git cat-file -p
但这并不是最容易解析的事情。我希望能有类似于git-log
的--pretty
选项,这样我就可以抓取我需要的信息了。
有什么想法吗?
发布于 2014-04-10 07:17:16
获取相同信息的一个更直接的方法是:
git cat-file tag <tagname>
这将使用单个命令并避免使用管道。
我在一个bash脚本中使用了它,如下所示:
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
发布于 2010-11-15 23:30:58
git show $TAG
将向您显示标记的信息以及它所指向的提交。
如果你有一些已经为你工作的东西,但是输入起来不方便,你总是可以设置一个别名:
[alias]
showtag = !sh -c 'git rev-parse $1 | xargs git cat-file -p' -
并使用以下命令调用它:
$ git showtag my-tag-name
https://stackoverflow.com/questions/4185888
复制相似问题