在默认情况下,git-reflog命令不会在每个条目旁边显示日期,这让我觉得是个奇怪的疏忽;我觉得这会很有帮助。
是否有任何命令行选项或其他调整,可用于使它显示添加每个reflog条目的时间?从还没有到来…
你可以使用git log的--walk-reflogs变体:
git log
--walk-reflogs
git log -g
默认情况下,这是相当冗长的,并打印日期。你可以用标准的--pretty=标志来格式化它。
--pretty=
你也可以直接使用reflog命令和--pretty=标志来格式化输出。
git reflog --pretty='%cd %h %gd %gs'
在上面的格式中,%cd将提交日期显示在正常reflog输出的左侧。
%cd
根据手册页,你可以使用git log选项,例如:
git reflog --pretty=short git reflog --date=iso
告诉git以什么格式,是计数的reflog项还是计时的reflog项,即。
git
reflog
git reflog @{now} git reflog @{0}
您可以使用自定义格式:
git reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)'
在上面的格式中,%h是提交散列,%cr是相对提交者日期,%gs是reflog主题,%s是提交主题。查看git-log文档中其他可能的占位符。例如,使用%ci而不是%cr将显示绝对提交日期。
%h
%cr
%gs
%s
%ci
您可以将其保存在~/中。gitconfig使用自定义pretty格式,并通过别名引用它:
pretty
[alias] rl = reflog --pretty=reflog [pretty] reflog = %C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)
Note git 2.10(2016年Q3)用git reflog改进了关于日期的文档。
git reflog
参见杰夫·金(peff)的提交642833 d, 提交1 a2a1e8(2016年7月27日)和提交d38c7b2, 提交522259 d, 提交83年c9f95, 提交2 b68222(2016年7月22日) 得益于:杰夫·金(peff)。< br > (由Junio C Hamano—gitster— in 提交0 d32799合并,08 Aug 2016)
peff
gitster
rev-list options被更新:
rev-list
根据一些规则,输出中的reflog指示符可以显示为ref@{Nth}(其中Nth是reflog中的倒序索引)或ref@{timestamp}(带有该条目的时间戳)。
ref@{Nth}
Nth
ref@{timestamp}
--date=raw
显示日期为自epoch (1970-01-01 00:00:00 UTC)以来的秒数,后面是一个空格,然后是时区作为UTC的偏移量(带有四个数字的+或-;前两个是小时,后两个是分钟) 例如,就好像时间戳是用strftime("%s %z")格式化的一样) 注意,-local选项不会影响seconds-since-epoch . c 值(总是用UTC度量),但是会切换相应的值 时区值。< / p >
+
-
strftime("%s %z")
-local
seconds-since-epoch
和一个新选项:--date=unix
--date=unix
将日期显示为Unix纪元时间戳(自1970年以来的秒数) 与--raw一样,它总是在UTC中,因此-local不起作用
--raw
git log --walk-reflogs --date=iso
git reflog --pretty=medium
... 但它们让你很难找到(git-log选项没有bash补全功能,log手册页没有记录各种漂亮的内置配置文件的占位符字符串,另外它与默认的git-log格式仍有一些不同,例如,你必须传递--abbrev)
log
git-log
--abbrev
使用ohmyzsh将git reflog输出格式化为glol:
glol
git reflog --pretty='%Cred%h%Creset -%C(auto)%d%Creset %gs %Cgreen(%cr) %C(bold blue)<%an>%Creset'
使用ohmyzsh将git reflog输出格式化为glod:
glod
git reflog --pretty='%Cred%h%Creset -%C(auto)%d%Creset %gs %Cgreen(%ad) %C(bold blue)<%an>%Creset'
我为ohmyzsh做了一个自定义插件git-mnz,有两个别名grlol, grlod和其他一些别名和函数。
grlol
grlod
**抱歉,如果没有发送一个PR到git插件,但有数百个PR等待合并..
如果你只想查看相对于当前时间的日期,你可以使用下面的命令:
git reflog --date=relative
为了节省一些输入,你可以为它创建一个git别名(rl - reflog的缩写):
rl
git config --global alias.rl "reflog --date=relative"
并使用别名,像这样(-10在最后显示最后10个动作):
-10
git rl -10