请参阅 git 分支包含/父子关系
See git branch containment / parent-child relationships
我有一组本地 git 分支机构。我想按 "containment" 对它们进行排序。
- 如果一个分支是另一个分支的父分支,它应该列在包含它的分支之前。所有子项都包含其父项包含的所有内容。
- 暗示:如果一个分支包含另一个分支(是该父分支的子分支),则它应该显示在它包含的分支之后。
- 如果两个分支是独立的(它们可能共享一个根,但严格来说都不包含另一个),那么从显示中应该可以清楚地看到这一点,也许可以通过将它们缩进成一个组或其他方式。
我很想看到它的终端可视化。
恐怕没有内置方法可以完全您想要的,但是接近的自由形式近似值是
git log --graph --decorate --oneline --abbrev=commit --all
(在 color.ui
设置为 auto
下特别好)。
您可能想要指定分支列表而不是 --all
。
您仍然可以尝试通过利用 git branch
命令的 --contains
命令行选项来编写您想要的行为的脚本:给定一组感兴趣的分支,您可能会获得列表包含每个分支的分支,并递归处理结果。然后对结果进行适当排序。
我有一组本地 git 分支机构。我想按 "containment" 对它们进行排序。
- 如果一个分支是另一个分支的父分支,它应该列在包含它的分支之前。所有子项都包含其父项包含的所有内容。
- 暗示:如果一个分支包含另一个分支(是该父分支的子分支),则它应该显示在它包含的分支之后。
- 如果两个分支是独立的(它们可能共享一个根,但严格来说都不包含另一个),那么从显示中应该可以清楚地看到这一点,也许可以通过将它们缩进成一个组或其他方式。
我很想看到它的终端可视化。
恐怕没有内置方法可以完全您想要的,但是接近的自由形式近似值是
git log --graph --decorate --oneline --abbrev=commit --all
(在 color.ui
设置为 auto
下特别好)。
您可能想要指定分支列表而不是 --all
。
您仍然可以尝试通过利用 git branch
命令的 --contains
命令行选项来编写您想要的行为的脚本:给定一组感兴趣的分支,您可能会获得列表包含每个分支的分支,并递归处理结果。然后对结果进行适当排序。