仅显示 git log 中标记的提交

问题描述 投票:0回答:1

我正在寻找一种显示 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 <[email protected]> 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)
    
git git-log
1个回答
3
投票
让我们从模拟存储库上的简单

--oneline

 输出开始,并且只有最后三个提交

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

现在,如果我们添加带有

--decorate 标志的 decorations

(指向提交的引用,即标签和分支):

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
 来过滤掉仅包含分支但没有标签的提交。

© www.soinside.com 2019 - 2024. All rights reserved.