使用 shell 脚本从 git 中提取“标签”信息

使用 shell 脚本从 git 中提取“标签”信息

风险投资捆绑是一个简洁的小包,可以提取有关 git 存储库的信息,以便轻松插入到 LaTeX 文档中。它当前不提取有关当前提交是否已标记以及标记名称是什么的信息。我将如何编辑vc脚本来做到这一点?

然后我将如何编辑vc-git.awk脚本以向生成的 vc.tex 文件添加额外的行?想必我想要一条看起来像这样的行:

print "\\gdef\\GITTag{" Tag "}%"

但我需要更早的一行来告诉 awk 是什么" Tag "意思?

这不是关于 LaTeX 的问题,而是关于 git、awk 和 bash 的问题......

答案1

git log --decorate -1 [commit]

如果commitHEAD如果省略)有标签,则提交哈希后面将跟着(tag: name)(也可能有多个其他符号引用)。你可以更具体地选择这个

git log --pretty=%d

答案2

您可以通过以下方式获取提交标记指向的内容:

git show -s 'TAG_NAME^{commit}' --format='%H'

不幸的是,我担心检查是否提交的唯一方法是标记它以检查所有标签。

答案3

您可以使用 来从提交中获取标签名称name-rev

git name-rev <commit> --tags

一个例子:

$ git name-rev fcfeabe --tags
fcfeabe tags/v2.36-beta2

因此,只获取标签:

git name-rev fcfeabe --tags | awk '{sub("tags/", ""); print $2}' 

相关内容