如何在单个图中显示影响特定文件的所有 Git 个分支头和提交

How to display all Git branch heads AND commits that affect a specific file in a single graph

我想获得与 gitk --all -- <path> 类似的视图,其中还包括所有分支机构负责人。默认情况下, gitk 像那样调用会选择影响给定路径的所有提交并显示仅包含这些提交的简化图。如果其中一些提交恰好是分支头或对应于标签,则分支或标签也会被绘制。这基本上是我想要的一半。除了影响给定路径的提交之外,我希望图表还包括与分支头相对应的所有提交。

这种图形表示会告诉我影响给定路径的哪些提交在每个分支上 accessible/included。

一种可能的方法是获取影响给定路径的所有提交的列表(例如使用 git rev-list)和分支头引用的所有提交的列表并通过组合列表到 gitk 以获得图形表示。但是 gitk 似乎不支持传递要包含的特定提交列表。

添加--simplify-by-decoration,并使用git log指定您想要的确切装饰,例如

git log --graph --decorate-refs=refs/heads/* --oneline --branches \
        -m --name-status --simplify-by-decoration -- path/to/file.1 e/t/cetera