Git:简化提交图?

时间:2011-11-23 22:36:55

标签: git

如果我使用gitk --all查看提交图,那就非常复杂了(我做了很多分支和合并只是为了在一个小人项目上的乐趣)。现在我想知道,如果有办法简化这个图表吗?

在删除不必要的分支的意义上简化(分支在某些时候都被合并为master)

2 个答案:

答案 0 :(得分:3)

我很确定你正在寻找的是第一个父选项,这会导致Git在遍历历史时只走到合并提交的第一个父级。您可以从命令行使用它:

git log --first-parent
gitk --first-parent

或在gitk中:查看>新视图...>限制为第一个父母(在杂项下)。

当然,您也可能 想要使用--all; gitk <commit>...仅显示从给定提交开始的历史记录(可以指定为分支),并且没有参数,它默认为当前分支。

如果您对要查看的历史记录有更准确的了解,可以使用man git-log中“历史记录简化”下列出的其他一些选项。值得注意的是,--ancestry-path可用于仅显示直接祖先路径:git log --ancestry-path commit1..commit2gitk通常采用与git-log相同的提交规范选项,后者依次从git-rev-list继承它们。

答案 1 :(得分:1)

如果您想了解整个历史记录, - 所有可能过多。这里有一些选项可以帮助您了解回购中的烹饪内容:

git --simplify-by-decoration --all
gitk --simplify-by-decoration --all

它将显示所有“标记”的提交带有引用或标记,包括那些未标记需要理解祖先的内容(非常有用)。见git log history simplification

回答您可以使用的确切问题:

git --simplify-merges --all
gitk --simplify-merges --all 

但它包含在 - 简化装饰

我大量使用它(在命令行上),所以我使用别名:

git config --global alias.logs 'log --simplify-by-decoration --graph --color --oneline --decorate'

使用它:

git logs --all
git logs master..development