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

时间:2013-06-28 16:18:02

标签: git git-reflog reflog

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

是否有任何命令行选项或其他调整可用于使其在添加每个reflog条目时显示? manpage即将到来......

8 个答案:

答案 0 :(得分:339)

正如手册页所写,您可以使用git log的选项,比如git reflog --pretty=short或其他任何您喜欢的选项

git reflog --date=iso

答案 1 :(得分:28)

您可以使用--walk-reflogs的{​​{1}}变体:

git log

默认情况下这是相当冗长的,并在其他内容中打印日期。您可以使用标准git log -g 标记格式化它。

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

--pretty=

在上面的格式中,git reflog --pretty='%cd %h %gd %gs' 显示正常reflog输出左侧的提交日期。

答案 2 :(得分:6)

告诉git采用何种格式,计算reflog条目或定时reflog条目,即

$ git reflog @{now}

$ git reflog @{0}

答案 3 :(得分:4)

您必须使用自定义格式:

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

在上面的格式中,%h是提交哈希,%cr是相对提交者日期,%gs是reflog主题,%s是提交主题。查看git-log docs其他可能的占位符。例如,使用%ci代替%cr将显示绝对提交日期。

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

[alias]
    rl = reflog --pretty=reflog
[pretty]
    reflog = %C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)

答案 4 :(得分:4)

注意git 2。10(2016年第3季度)使用git reflog改进了有关日期的文档。

请参阅commit 642833dcommit 1a2a1e8(2016年7月27日),commit d38c7b2commit 522259dcommit 83c9f95commit 2b68222(2016年7月22日) Jeff King (peff) 帮助:Jeff King (peff)
(由Junio C Hamano -- gitster --合并于commit 0d32799,2016年8月8日)

rev-list options is updated

  

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

It includes: - 关于--date=raw的更新:

  

将日期显示为自纪元(1970-01-01 00:00:00 UTC)以来的秒数,后跟一个空格,然后将时区显示为与UTC的偏移量(+或{{1有四位数字;前两位是小时,后两位是分钟)   即,好像时间戳格式为-)   请注意,strftime("%s %z")选项不会影响-local   值(总是以UTC为单位测量),但会切换附带的值   时区价值。

一个新选项:seconds-since-epoch

  

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

答案 5 :(得分:1)

使用 ohmyzsh 将 collection.AsQueryable().Where(e => allWordsArr.Any(_ => e.FirstName.ToLower().StartsWith(_.ToLower())) || allWordsArr.Any(_ => e.LastName.ToLower().StartsWith(_.ToLower())) || allWordsArr.Any(_ => e.Title.ToLower().StartsWith(_.ToLower()))) 输出格式化为 git reflog

glol

使用 ohmyzsh 将 git reflog --pretty='%Cred%h%Creset -%C(auto)%d%Creset %gs %Cgreen(%cr) %C(bold blue)<%an>%Creset' 输出格式化为 git reflog

glod

我使用这两个别名 git reflog --pretty='%Cred%h%Creset -%C(auto)%d%Creset %gs %Cgreen(%ad) %C(bold blue)<%an>%Creset' grlol 和其他一些别名和函数为 ohmyzsh 制作了一个自定义插件 git-mnz

** 对不起,如果没有向 git 插件发送 PR,但有 hundreds PR waiting to be merged..

答案 6 :(得分:0)

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

答案 7 :(得分:0)

git reflog --pretty=medium

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