387

默认情况下, git-reflog 命令不会在每个条目旁边显示日期,这让我觉得这是一个奇怪的疏忽;我认为这会很有帮助。

是否有任何命令行选项或其他调整可用于显示每个 reflog 条目何时添加?手册没有发布...

4

9 回答 9

561

根据手册页,您可以使用git log选项,例如,

git reflog --pretty=short

git reflog --date=iso
于 2013-06-28T16:35:36.353 回答
43

您可以使用以下--walk-reflogs变体git log

git log -g

默认情况下这是相当冗长的,并且会打印日期等。您可以使用标准--pretty=标志对其进行格式化。

您也可以直接使用带有--pretty=标志的 reflog 命令来格式化输出。

git reflog --pretty='%cd %h %gd %gs'

在上面的格式中,%cd提交日期显示在正常 reflog 输出的左侧。

于 2013-06-28T16:34:09.383 回答
16

您可以使用自定义格式:

git reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)'

在上述格式中,%h是提交哈希,%cr是相对提交者日期,%gs是 reflog 主题,以及,%s是提交主题。查看git-log 文档以了解其他可能的占位符。例如,使用%ci而不是%cr将显示绝对提交日期。

您可以使用自定义格式将其保存在 ~/.gitconfig 中pretty,并通过别名引用它:

[alias]
    rl = reflog --pretty=reflog
[pretty]
    reflog = %C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)
于 2014-11-23T12:35:47.467 回答
7

告诉git以什么格式,无论是计数reflog条目还是定时reflog条目,即

$ git reflog @{now}

$ git reflog @{0}
于 2014-10-21T23:22:12.700 回答
6

在此处输入图像描述

如果您只想查看相对于当前时间的日期,可以使用以下命令:

git reflog --date=relative

为了节省一些输入,你可以为它创建一个 git 别名(rl- 缩写reflog):

git config --global alias.rl "reflog --date=relative"

并改用别名,就像这样(-10最后是显示最后 10 个动作):

git rl -10
于 2021-09-20T02:36:55.970 回答
6

注意 git 2.10 (Q3 2016) 改进了关于 date 的文档git reflog

请参阅Jeff King ( )的提交642833d、提交1a2a1e8(2016 年 7 月 27 日)和提交 d38c7b2提交 522259d提交 83c9f95提交 2b68222(2016 年 7 月 22 日) 。 帮助者:Jeff King ( )(由Junio C Hamano 合并——提交 0d32799中,2016 年 8 月 8 日)peff
peff
gitster

rev-list选项已更新:

取决于一些规则,输出中的 reflog 指示符可能显示为ref@{Nth}Nthreflog 中的倒序索引在哪里)或ref@{timestamp}(带有该条目的时间戳)。

它包括: - 关于以下内容的更新--date=raw

将日期显示为自纪元 (1970-01-01 00:00:00 UTC) 以来的秒数,后跟一个空格,然后是时区作为与 UTC 的偏移量(a+-四位数字;前两个是小时,并且后两个是分钟)。
即,好像时间戳是用strftime("%s %z")) 格式化的。
请注意,该-local选项不会影响该seconds-since-epoch 值(始终以 UTC 测量),但会切换随附的时区值。

还有一个新选项:--date=unix

将日期显示为 Unix 纪元时间戳(自 1970 年以来的秒数)。
与 一样--raw,它始终采用 UTC,因此-local无效。

于 2016-08-11T09:14:10.437 回答
2

使用 ohmyzsh将git reflog输出格式化为:glol

git reflog --pretty='%Cred%h%Creset -%C(auto)%d%Creset %gs %Cgreen(%cr) %C(bold blue)<%an>%Creset'

使用 ohmyzsh将git reflog输出格式化为:glod

git reflog --pretty='%Cred%h%Creset -%C(auto)%d%Creset %gs %Cgreen(%ad) %C(bold blue)<%an>%Creset'

我使用这两个别名以及其他一些别名和功能为 ohmyzsh制作了一个自定义插件git-mnz 。grlolgrlod

** 抱歉,如果没有向 git 插件发送 PR,但是有数百个 PR 等待合并..

于 2021-07-02T16:27:59.033 回答
2

git reflog --pretty=medium

...但是他们真的很难找到(git-log 选项没有 bash 完成,log手册页没有记录各种漂亮的内置配置文件的占位符字符串,而且与默认值仍然存在一些差异git-log格式,例如你必须通过--abbrev

于 2021-03-16T05:37:54.573 回答
0

git log --walk-reflogs --date=iso

于 2020-08-02T06:11:55.317 回答