只显示Git分支拓扑结构,不显示提交历史记录。

6

我想简要查看我的git仓库的分支拓扑结构,而不是同时可视化整个提交历史记录,这使得分支可视化难以阅读。

例如,以下是按照此处给出的命令得到的结果。

$ git log --graph --full-history --all --pretty=format:"%h%x09%d%x20%s"
* 822458d        (HEAD -> branch2) revision 5
* 1057127        revision 4
| * ae46e7e      (branch1a) revision 3
| * 39cd7e2      (branch1) revision 2
| * 6802061      revision 1 
|/  
* f8c8522        (master) start

我需要的只是分支拓扑结构,不需要提交历史记录。即像这样:

branch2
|          branch1a
|         /
| branch 1
|/  
(master)

你们知道如何在Git中实现这个吗?

谢谢。


1
请记住,分支只是指向一个提交的指针。您可以追踪分支历史的原因是它所指向的提交具有父提交,而这些父提交又有自己的父提交,以此类推。我知道您正在寻找更好的可视化方式,但提交确实是我们唯一拥有的拓扑结构,因此必须使用它来生成您似乎正在寻找的显示。 - Romain Valeri
1个回答

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

--simplify-by-decoration选项允许您只查看历史拓扑的大局,通过省略未被标签引用的提交。如果提交被标记为!TREESAME(换句话说,在上述历史简化规则之后保留),则表示它们被引用了标签或者它们更改了命令行中给出的路径的内容。所有其他提交都标记为TREESAME(可能会被简化掉)。


不适用于我的1.7.10.4版本 :'-( 但无论如何都是个很棒的功能! - Romain Valeri
@RomainVALERI 真的吗?因为看起来它已经在 Git 中有了 10 年的历史了(https://github.com/git/git/commit/78892e32616f00bf173496ca0502aff2e523db31)。我可能错了...是的,我在我的 2.15.2 上测试过了,这似乎与 1.7.10.4 相去甚远...为什么不更新呢? :) - Amadan
这是一个我无法控制的工作环境 :-) 但无论如何,还是谢谢你毫不掩饰地提醒我!开个玩笑,当然,它最终会非常有用。 - Romain Valeri
1
@RomainVALERI: --simplify-by-decoration 从 Git v1.6.1 开始就有了;它应该在1.7.10.4中。但是,哇,1.7.x版本已经很老了... - torek
这在gitk中也有用。我使用了 gitk --all --simplify-by-decoration,因为 --decorate--oneline--graph 在已经是图形化的gitk中没有意义。 - Tulains Córdova

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接