默认情况下,git-reflog命令不会在每个条目旁边显示日期,这让我感到奇怪。我认为这将非常有帮助。

是否有任何命令行选项或其他调整可用来使它在添加每个reflog条目时显示?该手册页即将发布...

#1 楼

在手册页中,您可以使用git log选项,例如
git reflog --pretty=short

git reflog --date=iso


评论


这将用日期替换头号(或任何正确的术语)。你们两个都可以吗?

–马可·埃克斯坦(Marco Eckstein)
2014年7月9日在10:23

@Marco看来您必须使用自定义格式:git reflog --format ='%C(auto)%h%<|(17)%gd%C(blue)%ci%C(reset)%s' 。我为此添加了一个别名:github.com/blueyed/dotfiles/commit/…

–蓝色
2014年11月23日12:13



@blueyed不太一样-reflog命令中的--date = iso显示了创建该reflog条目的时间,而不是提交时间。仍然感谢您的别名,因为我已使用它进行了更漂亮的刷新。

–约翰·汉肯斯(Johan Henkens)
19年7月31日在23:04

您可以将两者结合使用:git reflog --date = iso --pretty = short

– Herz3h
20 Sep 11 '20 at 12:55

#2 楼

您可以使用--walk-reflogsgit log变体:

git log -g


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

还可以将reflog命令与--pretty=标志一起直接用于格式化输出。

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


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

评论


不幸的是,%cd显示了reflog指向的提交日期,这不是我(或OP)所追求的日期:我们想要reflog条目的日期。

–Thanatos
2014年4月21日在23:12

git log --walk-reflogs --date = iso刚刚完成了我的一天

–阿洛瓦·马哈德(Alois Mahdal)
16-09-13在17:41

git reflog --pretty ='%cd%h%gd%gs'是彩色的吗?

–警报
20/11/15在10:53

#3 楼

您可以使用自定义格式:
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处在正确的状态”)。

– ErikE
15年7月21日在19:50

@ErikE-只需将cr更改为ci即可获取每个操作的完整时间戳:git reflog --format ='%C(auto)%h%<|(20)%gd%C(blue)%ci%C(重置)%gs(%s)'

– n1k31t4
19-10-9在8:50

而不是(20)%gd; (17)%gd似乎更好地对齐

–警报
20/11/15在11:06

#4 楼

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

$ git reflog @{now}

$ git reflog @{0}


评论


我内的程序员不喜欢{}中的“自然语言”日期,但是很高兴,该技术也可以与--date = iso一起使用。

–mwfearnley
19年2月1日在20:59

#5 楼

注意git 2.10(Q3 2016)改进了有关日期的文档git reflog

请参阅commit 642833d,commit 1a2a1e8(2016年7月27日),commit d38c7b2,commit 522259d,commit 83c9f95,commit 2b68222(7月22日) 2016)(作者:Jeff King(peff)。
帮助人:Jeff King(peff)(Junio C Hamano合并-gitster-提交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


将日期显示为Unix时间戳(自1970年以来的秒数)。
seconds-since-epoch一样,始终使用UTC,因此--date=unix不起作用。


#6 楼

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