Answers:
在手册页中,您可以根据需要使用git log
,say git reflog --pretty=short
或其他任何选项
尝试
git reflog --date=iso
git reflog --format='%C(auto)%h %<|(17)%gd %C(blue)%ci%C(reset) %s'
。我增加了一个别名是:github.com/blueyed/dotfiles/commit/...
--date=iso
命令中的表示创建该reflog条目的时间,而不是提交时间。仍然感谢您的别名,因为我已使用它进行了更漂亮的刷新。
您可以使用以下--walk-reflogs
变量git log
:
git log -g
默认情况下,这很冗长,并且会打印日期。您可以使用标准--pretty=
标志对其进行格式化。
您也可以直接将reflog命令与该--pretty=
标志一起使用以格式化输出。
git reflog --pretty='%cd %h %gd %gs'
在以上格式中,%cd
将提交日期显示在常规reflog输出的左侧。
%cd
,不幸的是,它显示了reflog指向的提交日期,这不是我(或OP)之后的日期:我们想要reflog条目的日期。
git log --walk-reflogs --date=iso
刚刚度过了我的一天
您必须使用自定义格式:
git reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)'
在上述格式中,%h
是提交哈希,%cr
是相对提交者日期,%gs
是reflog主题,并且%s
是提交主题。查看git-log文档中其他可能的占位符。例如,使用%ci
代替代替%cr
将显示绝对提交日期。
您可以使用自定义pretty
格式将其保存在〜/ .gitconfig中,并通过别名引用它:
[alias]
rl = reflog --pretty=reflog
[pretty]
reflog = %C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)
%gd
它没有显示相同的日期@{now}
。在搜索reflog时,知道准确的时间非常重要(例如,“我知道8:57处在正确的状态”)。
cr
改为ci
以获取每个操作的完整时间戳:git reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%ci%C(reset) %gs (%s)'
告诉git
计数reflog
条目或计时reflog
条目采用什么格式,即
$ git reflog @{now}
$ git reflog @{0}
{}
,但是很高兴这种技术也可以使用--date=iso
。
注意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合并--在commit 0d32799,2016年8月8日)peff
peff
gitster
根据一些规则,输出中的reflog指示符可能显示为
ref@{Nth}
(其中Nth
reflog中的时间倒序索引)或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
无效。