有没有办法让git-reflog在每个条目旁边显示一个日期?

blmhpbnm  于 2023-06-28  发布在  Git
关注(0)|答案(9)|浏览(156)

默认情况下,git-reflog命令不会在每个条目旁边显示日期,这让我觉得是一个奇怪的疏忽;我想这会很有帮助。
是否有任何命令行选项,或其他调整,可以用来使它显示每个reflog条目时被添加?manpage不会出现

7dl7o3gd

7dl7o3gd1#

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

git reflog --pretty=short

git reflog --date=iso
ars1skjm

ars1skjm2#

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

git log -g

默认情况下,这是相当冗长的,并打印日期和其他内容。您可以使用标准的--pretty=标志来格式化它。
您还可以直接使用reflog命令和--pretty=标志来格式化输出。

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

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

monwx1rj

monwx1rj3#

您可以使用自定义格式:

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)
pu3pd22g

pu3pd22g4#

告诉git以什么格式,计数的reflog条目或定时的reflog条目,即

git reflog @{now}    
git reflog @{0}
5m1hhzi4

5m1hhzi45#

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

git reflog --date=relative

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

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

然后使用别名,如下所示(最后的-10显示最后10个操作):

git rl -10
ukdjmx9f

ukdjmx9f6#

注意git 2.10(Q3 2016)改进了关于git reflog日期的文档。
参见commit 642833dcommit 1a2a1e8(2016年7月27日)和commit d38c7b2commit 522259dcommit 83c9f95commit 2b68222(2016年7月22日)by Jeff King ( peff )
求助人:Jeff King ( peff )
(由Junio C Hamano -- gitster --合并于commit 0d32799,2016年8月8日)
rev-list选项已更新:
输出中的reflog指示符可以显示为ref@{Nth}(其中Nth是reflog中的倒序索引)或ref@{timestamp}(带有该条目的时间戳),这取决于一些规则。
它包括:- 关于--date=raw的更新:
显示日期为自纪元(1970-01-01 00:00:00 UTC)以来的秒数,后跟一个空格,然后显示时区为UTC的偏移量(+-,四位数;前两个是小时,后两个是分钟)。
例如,时间戳的格式为strftime("%s %z"))。
请注意,-local选项不会影响seconds-since-epoch值(始终以UTC衡量),但会切换相应的时区值。
还有一个新的选择:--date=unix
以Unix纪元时间戳的形式显示日期(自1970年以来的秒)。
--raw一样,这始终是UTC,因此-local没有任何影响。

unhi4e5o

unhi4e5o7#

使用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和一些其他的别名和函数。

**很抱歉,如果没有发送PR到git插件,但有hundreds PR waiting to be merged ..

tpxzln5u

tpxzln5u8#

git reflog --pretty=medium
...但是它们让人很难发现(git-log选项没有bash完成,log手册页没有记录各种漂亮的内置配置文件的占位符字符串,而且与默认的git-log仍然有一些差异,例如。你必须通过--abbrev

ltskdhd1

ltskdhd19#

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

相关问题