git日志显示所有异常标记



情况:我使用git中的标记来标记版本发布。我还有一个快速命令,可以用git向我显示一个简单的图形,其中包含我所有活动的dev分支:

git log --oneline --graph --simplify-by-decoration --all

问题是,这显示了所有的标签,吞噬了屏幕上的大量房地产。有没有办法过滤掉标签?我仍然想要所有其他信息(即,只有活跃的开发分支(。

我试过使用--exclude="refs/tags/*,但没有用——还有其他建议吗?

我已经包含了我的git日志的图像,所有的标签都乱成一团

您可以轻松接近:

git log --graph --decorate --oneline 
--simplify-by-decoration --branches --decorate-refs=refs/heads

添加--decorate-refs=refs/remotes以将远程分支包含在装饰中,添加--remotes以将它们包含在入门提示中。

我要查找的命令是:

git log --oneline --graph --decorate --simplify-by-decoration --branches --remotes --decorate-refs=refs/heads --decorate-refs=refs/remotes

感谢@jthill和@torek在这个问题上的帮助。

编辑:

经过进一步的实验,我发现了以下命令:

log --oneline --graph --decorate --simplify-by-decoration --all --decorate-refs-exclude=refs/tags

上述命令将包括所有本地和远程分支,包括HEAD指示器,并将排除标签

在您的第一个命令中:

git log --oneline --graph    --decorate --simplify-by-decoration 
--branches --remotes --decorate-refs=refs/heads --decorate-refs=refs/remotes

如果您使用Git 2.35(2022年第一季度(,则可以删除--decorate

当";CCD_ 5">(man(在没有被明确询问--decorate选项的情况下隐式启用装饰处理;CCD_ 7";选项

参见Jeff King(peff(的提交be73860,提交14b9c2b(2021年12月2日(
(由Junio C Hamano合并——gitster——提交00cbaf9,2021年12月21日(

log:加载装饰--通过装饰简化

签字人:Jeff King

可以指定--simplify-by-decoration,但不能指定--decorate
在这种情况下,我们确实尊重简化,但实际上我们没有展示任何装饰
然而,它通过在需要时懒惰地加载装饰来工作;这在0cc7380中有更详细的讨论("log-tree:在get_name_decoration()中调用load_ref_decorations()",2019-09-08,Git v2.24.0-rc0-merge列在第6批中(。

这适用于基本情况,但不尊重任何--decorate-refs选项(或其变体(
只有在cmd_log_init()预先加载ref装饰时,也就是说,只有在显式指定--decorate时(或者在上一次提交时,当userformat要求%d或类似内容时(,才会处理这些内容。

如果我们想简化使用,但它们不会被显示,我们可以通过确保加载装饰来解决这个问题。

最新更新