首页 > 解决方案 > 任何方式来可视化所有 git 分支 - 但随着时间的推移使分支始终保持在同一列中?

问题描述

我需要可视化一些 git 分支。但是,在这种情况下使用gitkorgit log --decorate --oneline --graph是不够的。

问题是分支在图中从一列到另一列徘徊,使其非常混乱。颜色编码存在,但现在还不够。这不是这些工具的错,但另一种查看分支的方式可能会有所帮助。

我不确定它们的顺序,很可能是它们的初始创建日期从左到右。所以 master永远是左列(无论如何),然后是右边的任何分支,等等。(列数随着时间的推移是恒定的,它只是当前的最大分支数。)

是否存在这样的工具或现有工具的论据?即使有妥协,也会很有帮助。

标签: git

解决方案


没有简单的方法可以实现这一目标,因为 git 中的分支不是“一组提交”,而只是指向特定提交的指针。前面的语句对 git 图的可视化方式有影响。

例如,这意味着多个分支可以指向同一个提交。因此可以共享图表的一部分。默认情况下,我们也不能只跟随合并的第一个父级来“跟随一个分支”,因为它也可以反转,例如通过从本地分支和跟踪分支中拉取创建的合并提交从远程更改后之后立即通过推动将导致快进并反转远程的第一个父级的本地...

我发现在 git 中具有可读历史的唯一方法是使用所谓的“线性历史”这个想法很简单:始终使用变基更新开发分支通过从源分支交付到目标分支(仅在开发通过将其合并(无快进)到目标分支中,分支是最新的。

这会给你一个类似的历史:

半线性历史

你可以在这里阅读: https ://www.bitsnbites.eu/a-tidy-linear-git-history/

顺便说一句,我发现执行此行为的唯一 git 服务器是 GitLab。他们称之为半线性历史


推荐阅读