如何“git log”整个存储库而不仅仅是你所在的分支?

时间:2011-10-13 17:39:49

标签: git

问题很简单:我希望看到git log的输出,但是对于整个存储库。目前它只显示我所在的分支中的变更集:git log --all --source --graph

例如,如果我能看到存储库中的最后100个提交,无论我在哪个分支以及这些提交属于哪个分支,那将是完美的。这可能吗?

3 个答案:

答案 0 :(得分:6)

尝试使用此命令:

git log --all --graph --decorate --pretty=oneline --abbrev-commit

您已经使用--all --graph开始了。添加--decorate将显示指向提交的任何分支或标记,其他两个--pretty=oneline --abbrev-commit仅用于清理和压缩输出。

最好在命令中包含--pretty,因为如果您使用自定义格式,--decorate将无效。

如果这是一个你将要使用很多的命令,你实际上可以添加一个别名,这样就可以轻松地重复使用,而无需输入整个内容。例如,将以下内容添加到~/.gitconfig

[alias]
  history = "git log --all --graph --decorate --pretty=oneline --abbrev-commit"

然后你可以使用git history来获得格式良好的输出。

答案 1 :(得分:0)

我不知道是否有一个命令来执行此操作。此外,它可能会令人困惑,因为提交可能会交错。

我写了一个小ruby script来打印这样的东西,但是以适合graphviz的dot命令的格式给我一个存储库历史的图形视图。你可以试试。该脚本非常简单,因此您可以修改它以便以线性格式打印相同的信息(这也是您要查找的信息)。

答案 2 :(得分:0)

您还可以使用gitk --all来显示所有提交内容,以及您需要的内容。