[英]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.