[英]How to find commit information for all release tag of a repository in a single command?
我可以在一行中使用 git 日志命令获取提交信息,如下所示:
git log --pretty='%H,%an,%ae,%cn,%ce,%cd,%s' --date=format:%Y-%m-%dT%H-%M-%S
但是,我想获得发布标签提交的类似信息。 目前,我可以使用两个步骤来解决这个问题:(1)找到所有的发布标签,(2)为每个发布标签(revtag)找到提交信息
在这两个步骤中使用了以下命令:
第 1 步:查找所有发布标签:
git tag --sort=refname
第 2 步:查找每个标签的提交信息:
git log revtag -1 --pretty='%H,%an,%ae,%cn,%ce,%cd,%s' --date=format:%Y-%m-%dT%H-%M-%S
这种方法的问题是我必须迭代每个标签并在第 2 步执行命令。我想要一个 git 命令来完成这项工作,并在一行中打印每个标签的所有提交信息。 有什么办法可以解决这个问题吗?
要获取有关单个提交的信息(而不是提交及其历史记录),通常最好使用git show
。 默认情况下, show
将包含每个提交的差异(来自其父项),但您可以使用--no-patch
抑制它。
所以:
git show --pretty='%H,%an,%ae,%cn,%ce,%cd,%s' --date=format:%Y-%m-%dT%H-%M-%S --tags --no-patch
这可能不会给出你想要的顺序。 (我注意到您在第一步中对标签进行了排序。)如果您只是想让它们按时间顺序发布,我相信--date-order
会确保这一点。
此外,您没有提到这在您的情况下是一个问题,但因为它通常是:如果只有一些标签是发布,那么您可以使用--tags=<pattern>
符号 select 仅正确的标签
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.