情况:我使用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或类似内容时(,才会处理这些内容。如果我们想简化使用,但它们不会被显示,我们可以通过确保加载装饰来解决这个问题。