我们使用Gerrit和Bugzilla,因此我们的提交消息具有页脚:
commit c557164627b6a53017a2b6ea5122393415445d43
Author: Tim Landscheidt <tim@tim-landscheidt.de>
Date: Mon Jun 23 22:09:21 2014 +0000
Tools: Install xsltproc
Bug: 66962
Change-Id: I01cfb2f72c3a7de39a5ac2b3439022122fdfbb15
在Gerrit的网络界面中,“Bug”和“Change-Id”页脚会自动链接到相应的Gerrit和Bugzilla页面。在命令行上,我必须复制&amp;粘贴&amp;而是搜索。
我想过滤提交消息,以便上述示例由git show
(1.8.3.1)显示为:
commit c557164627b6a53017a2b6ea5122393415445d43
Author: Tim Landscheidt <tim@tim-landscheidt.de>
Date: Mon Jun 23 22:09:21 2014 +0000
Tools: Install xsltproc
Bug: https://bugzilla.wikimedia.org/66962
Change-Id: https://gerrit.wikimedia.org/r/#q,I01cfb2f72c3a7de39a5ac2b3439022122fdfbb15,n,z
允许我的Konsole窗口使这些链接可以点击。
但是看git show
,那里的格式似乎不允许调用外部程序。
在内部没有办法在Git中这样做,所以我需要设置一个shell别名吗?
答案 0 :(得分:1)
虽然您可以使用git show
的{{1}}参数来更改字段的顺序并在它们之间添加额外的文本,但您无法修改字段的内容。 Gerrit和Bugzilla消息通过它的外观添加到提交消息中,因此您无法从Git中重新格式化它们。
但是,可以在Git中设置别名而无需单独的shell文件,如下所示:
--format
那么您就可以使用git config alias.shw '!git show | sed "s/Bug: /Bug: https:\/\/bugzilla.wikimedia.org\//" | sed "s/Change-Id: \(.*\)/Change-Id: https:\/\/gerrit.wikimedia.org\/r\/#q,\1,n,z/"'
代替git shw
来获得调整后的输出。