如何从git标记读取标记器信息?

如何从git标记读取标记器信息?,git,git-tag,Git,Git Tag,到目前为止,我已经: git rev-parse <tagname> | xargs git cat-file -p git rev parse | xargs git cat文件-p 但这不是最容易解析的。我希望得到类似于git log的--pretty选项的东西,这样我就可以获取我需要的信息 有什么想法吗?谢谢git show$TAG将向您显示标签的信息以及它指向的提交 如果您有一些已经可以使用但难以键入的内容,您可以随时设置别名: [alias] showt

到目前为止,我已经:

git rev-parse <tagname> | xargs git cat-file -p
git rev parse | xargs git cat文件-p
但这不是最容易解析的。我希望得到类似于git log的
--pretty
选项的东西,这样我就可以获取我需要的信息


有什么想法吗?谢谢

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

如果您有一些已经可以使用但难以键入的内容,您可以随时设置别名:

[alias]
        showtag = !sh -c 'git rev-parse $1 | xargs git cat-file -p' -
并称之为:

$ git showtag my-tag-name

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

git cat-file tag <tagname>

这在很久以前就已经得到了回答,但仍然是最热门的搜索结果,尽管它不再是最佳解决方案,因此,它是这样的:

命令:

git for-each-ref refs/tags/$TAG --shell --format='
TAG=%(refname)
TYPE=%(objecttype)
COMMIT=%(objectname)
TAGGER=%(tagger)
EMAIL=%(taggeremail)
DATE=%(taggerdate)
CONTENTS=%(contents)
'
TAG='refs/tags/4.1.0-RC1'
TYPE='tag'
COMMIT='973cc103f942330550866588177fe53ea5765970'
TAGGER='ml_'
EMAIL='<ml@example.org>'
DATE='Fri Sep 16 14:14:50 2016 +0200'
CONTENTS='Release 3:
* INSTALL.md added.
* GIT.md modified.
'
--shell对shell脚本进行引用。还有--perl--python--tcl。 如果不想将整个格式作为命令行选项写入,也可以将其放入file.txt中,然后执行以下操作:

git for-each-ref refs/tags/<tag> --shell --format="$(cat file.txt)"
git for each refs/tags/--shell--format=“$(cat file.txt)”
输出:

git for-each-ref refs/tags/$TAG --shell --format='
TAG=%(refname)
TYPE=%(objecttype)
COMMIT=%(objectname)
TAGGER=%(tagger)
EMAIL=%(taggeremail)
DATE=%(taggerdate)
CONTENTS=%(contents)
'
TAG='refs/tags/4.1.0-RC1'
TYPE='tag'
COMMIT='973cc103f942330550866588177fe53ea5765970'
TAGGER='ml_'
EMAIL='<ml@example.org>'
DATE='Fri Sep 16 14:14:50 2016 +0200'
CONTENTS='Release 3:
* INSTALL.md added.
* GIT.md modified.
'
TAG='refs/tags/4.1.0-RC1'
TYPE='tag'
COMMIT='973cc103f942330550866588177fe53ea5765970'
TAGGER='ml''
电子邮件=“”
日期='Fri Sep 16 14:14:50 2016+0200'
第3版内容:
*添加了INSTALL.md。
*GIT.md已修改。
'
更多信息请点击此处:

谢谢。我应该提到的是,我还设法做到了git show--quiet--pretty=“format:$TAG,但基本上与上面相同。@quornian:您可以使用git的别名功能。我在回答中提供了一个例子。谢谢,效果很好!只是想提醒读者,
alias
需要添加到文件
.gitconfig
,通常它位于您的主文件夹中。如果在执行此
git showtag
之后没有换行符,可以通过以下方式添加它:
showtag=!sh-c'git rev parse$1 | xargs git cat file-p&&echo”“-
我认为这是现在最好的答案(比我接受的答案更好)注意,
TYPE
对于轻量级标记将是
commit
。我认为对每个ref使用
git的更新答案现在是更好的解决方案