如何以相反的顺序查看git日志?

251

我最近学到可以使用以下命令将hg log中的历史记录按相反顺序打印:

hg log -r :

当然,我尝试了:

git log -r :

好的,这个方法没起作用。那么在git中如何执行同样的命令呢?


2
man git-log grep reverse。 - scravy
4
输入 man git-log,然后按回车键。如果需要翻转顺序,则输入 /reverse - sjas
1
为了清晰起见,根据文档,GIT中的-r翻译为:“显示递归差异”。 - GuyPaddock
7个回答

465

使用--reverse选项:

git log --reverse

70
иҮ·жіЁж„ЏпәЊдң‹е¦‚git log -10 --reverseе°†иҺ·еЏ–жњЂеђҺ10дёҒжЏђдғ¤и®°еҢ•пәЊз„¶еђҺеЏҚиҢ¬е€—иҰЁгЂ‚ - Jakub Narębski
你可以创建一个Git别名:https://dev59.com/CHE85IYBdhLWcg3w43-o - Makis
4
目前来看,即使文档没有提到,这个方法也适用于git show命令。例如,可以使用git show origin/master.. --reverse命令。请注意,不做原意解释和其他多余内容的修改。 - Ryan Lundy
4
我使用 git gol 来代替 git log --reverse - Felipe Alvarez

16

您不需要每次都键入--reverse,也不需要bash函数。 您可以创建一个git别名。 打开您喜欢的文本编辑器并打开全局.gitconfig文件。 它通常位于您的主目录中。

导航到或创建像这样的部分:

[alias]
    lg = log -10 --reverse

这将创建一个git别名,它会获取最近的十个提交记录,然后反转该列表,以便其中最近的10个提交记录出现在底部。现在你可以简单地运行:

git lg


12

Jakub Narębski评论(“请注意,例如git log -10 --reverse会获取最后10个提交,然后翻转列表”)已在Git 2.11(2016年第4季度)中得到澄清:

请看提交 04be694(2016年9月27日),由Pranit Bauva (pranitbauva1997)提交。
(于2016年10月11日被Junio C Hamano -- gitster --合并至提交 54a9f14中)

rev-list-options: 澄清--reverse的用法

用户经常想知道log -n --reverse会显示最老的还是最新的n个提交。
澄清一下,只有在决定要显示哪些提交之后,--reverse才会生效,以消除他们的困惑。

请参见提交限制


2
但是如果你想在-n之前进行反转怎么办?我似乎想不出来。 (也就是第一次提交) - justin.m.chase
1
这可能有点低效,但对我来说可行的方法是 git log --reverse --format=%cd | head -n 1 - justin.m.chase

3

如果你想要一个反向的git --graph,很遗憾你不能使用--reverse,但是你可以使用tac

git log --graph --color | tac

请注意这里的--color非常重要。
作为git别名:
git config --global alias.logr '!git log --graph --color | tac'

当然,还可以在git log --graph命令后添加你喜欢的标志。


2

我将几个建议合并成一个,并创建了一个别名。

git log -10 --pretty=oneline --abbrev-commit --reverse

alias gl='git log -10 --pretty=oneline --abbrev-commit --reverse'

反转功能出现问题。 - CodeFarmer

1

除了最近提交的带有统计信息的提交消息,以上所有方法都无效。

git log --graph --stat

更多的代码片段 ~/.gitconfig:
lg1 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
lg = !"git lg1"
lg3 = log -10 --reverse --abbrev-commit

当使用 --graph 时,你不能直接按相反的顺序获取结果,因为 git 不允许在 --graph 上使用 --reverse。请参考我的答案以获取解决方案。 - lajarre

0

如果您使用的是类Unix操作系统,您可以创建一个bashrc函数。

function git_logr {

    git log --reverse

}

6
更简便的方法是为这个简单的操作添加一个别名: git config --global alias.logr 'log --reverse' 使用时输入:git logr <附加参数> - mhand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接