簡體   English   中英

在 git log 中只顯示標記的提交

[英]Show only tagged commits in git log

我正在尋找一種方法來顯示 git 日志,按提交排序,顯示日期,並且只顯示帶有標簽的提交。

我們的網絡主機有一個自動部署系統,當一個特定的提交被推送到生產時,它會在上面得到一個特定的標簽。 我正在解決一個問題,我只想查看那些已經在生產中的提交。

我能夠創建一個 git 別名,我稱之為nanolog ,如下所示:

nanolog = log --date-order --date=format:'%Y-%m-%d %H:%M:%S' --format='%C(yellow)%cd%Creset  %h  \"%s\"  %Cred%cn %Cgreen(%cr)'

這給了我一個看起來像這樣的日志:

2019-06-17 23:39:43  13f7e5f89  "Merge branch 'live-config' into int"  Webhost (3 weeks ago)
2019-06-17 23:24:20  32b6141dc  "Merge branch 'live-config' into int"  User Name (3 weeks ago)

我查看git log的文檔,在關於--format的部分中,這是我用來指定在我的nanolog別名中顯示哪些信息的部分,我沒有找到任何顯示標簽的方法。 我查看了漂亮的格式文檔,同樣沒有找到指定標簽信息的方法。

在股票git log ,您會在提交哈希旁邊看到標簽:

commit d1d59f2fe151d1eb240b453e6efe76e4dfe13a93 (tag: webhost_test_198, tag: webhost_live_114, origin/06-24, 06-24)
Merge: 13f7e5f89 143b58189
Author: Webhost <webhost@webhost.com>
Date:   Fri Jun 21 20:25:24 2019 +0000

    Merged int into master

滾動瀏覽股票git log相當費力,而且有些容易出錯,其中包括標簽信息,以及所有其他未標記的提交。 如何獲得僅顯示帶有標簽的提交的簡短日志?

理想情況下,我想要這樣的東西:

2019-06-17 23:39:43  13f7e5f89 (tag: webhost_test_198, tag: webhost_live_114, origin/06-24, 06-24) "Merge branch 'live-config' into int"  Webhost (3 weeks ago)
2019-06-03 23:24:20  32b6141dc (tag: webhost_test_197, tag: webhost_live_113,)  "Merge branch 'live-config' into int"  User Name (5 weeks ago)

讓我們從模擬存儲庫上的簡單--oneline輸出開始,並且只有最后三個提交

git log --oneline -3

4c37e97 fixed a bug in sub-feature F1
d9c4599 added sub-feature F1
06014cb changed part XYZ

現在,如果我們使用--decorate標志添加裝飾(指向提交的引用,即標簽和分支):

git log --oneline --decorate -3

4c37e97 (HEAD -> feature/abc) fixed a bug in sub-feature F1
d9c4599 added sub-feature F1
06014cb (tag: release/1.22) changed part XYZ

此時你還可以添加--simplify-by-decoration標志來過濾掉沒有被任何標簽/分支引用的提交

git log --oneline --decorate --simplify-by-decoration -3

4c37e97 (HEAD -> feature/abc) fixed a bug in sub-feature F1
06014cb (tag: release/1.22) changed part XYZ
eec8aad (master) some older change

但是在您使用特定格式的情況下,您可以使用%d來實現這種效果。

如果我們修改您的nanolog ,在我的示例中輸出以下內容:

git nanolog -3

2019-07-08 19:19:46  4c37e97  "fixed a bug in sub-feature F1"  Romain (69 seconds ago)
2019-07-08 19:19:11  d9c4599  "added sub-feature F1"  Romain (2 minutes ago)
2019-07-08 19:18:26  06014cb  "changed part XYZ"  Romain (2 minutes ago)

進入這個

    nanolog2 = log --date-order --date=format:'%Y-%m-%d %H:%M:%S' --format='%C(yellow)%cd%Creset  %h  \"%d %s\"  %Cred%cn %Cgreen(%cr)'

...我們會得到

git nanolog2 -3

2019-07-08 19:19:46  4c37e97  " (HEAD -> feature/abc) fixed a bug in sub-feature F1"  Romain (12 minutes ago)
2019-07-08 19:19:11  d9c4599  " added sub-feature F1"  Romain (13 minutes ago)
2019-07-08 19:18:26  06014cb  " (tag: release/1.22) changed part XYZ"  Romain (14 minutes ago)

最后,是的,您可以將其傳遞給grep "(tag:"或者只是grep tag來過濾掉只有分支但沒有標記的提交。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM