如何通过哈希显示提交的日期和时间

时间:2018-05-21 16:19:28

标签: git

我使用git reflog来识别创建特定分支时的哈希值。我得到了fe1ddcdef的哈希值。我还没把这个分支推到遥控器上。我现在正试图找到fe1ddcdef发生的日期和时间。 git reflog只显示我:

fe1ddcdef HEAD@{11}: checkout: moving from master to handoff

没有日期或时间。

git log太冗长了,因为它包含了我所有同事的提交,我不能轻易找到大海捞针fe1ddcdef

如何才能简单地找到提交fe1ddcdef的日期和时间?

4 个答案:

答案 0 :(得分:5)

只需使用:

git show fe1ddcdef

...显示提交的内容。实际上,一旦你有任何标识提交对象的表达式,你就可以在需要修订的所有地方使用它。这些表达式可以是十六进制哈希(甚至部分),分支名称或标记名称。它也可以是其中之一,与一个或多个运营商相关联,例如" ^",或"〜"或" @"。

这意味着您也可以使用git log fe1ddcdef从此时开始获取分支的完整历史记录。

如果您只想获得它的日期和时间,则可以输入:

git show --no-patch --no-notes --pretty='%cd' fe1ddcdef

'%cd'替换为'%h %cd %s'以添加哈希摘要和提交主题消息。

答案 1 :(得分:3)

  

我现在正试图找到fe1ddcdef发生的日期和时间

"发生地点"没有明确定义,但我可以注意到每个提交都有两个与之关联的日期和时间戳:作者日期提交日期

通常这两个是相同的,除非您使用任何复制提交的选项,在这种情况下,作者时间戳是它首次提交的日期,提交者时间戳是指特定提交的时间。

两个时间戳都在用户的完全控制之下。但是,人们通常不会覆盖它们,因此它们与他们自己的计算机时钟一样准确(即,不是很高)。

要查看两个日期,请使用,例如:

git log --no-walk --pretty=fuller fe1ddcdef

要查看一个,您可以省略格式,或使用git show <hash>(也显示差异)。要 日期或日期,请使用--pretty=format:<directives>--format=<directives>。打印作者日期的指令的格式为%a<letter>,打印提交者日期的指令的格式为%c<letter>,其中<letter>部分为d之一,{{ 1}},Drti。有关详细信息,请参阅PRETTY FORMATS section of the git log documentation

答案 2 :(得分:1)

你可以尝试

git reflog --date=iso

您还可以使用git pretty formats制作自己的格式。另请查看此answer以获取更多选项。

答案 3 :(得分:0)

引用提交的规范化方法是abbreviated hash (subject, date),没有时间。它称为“参考”。

在Git 2.25(2020年第1季度)中,“ git log”家族学会了“ --pretty=reference”,该提交以一种经常在日志消息中引用该提交的格式给出了提交的名称。 / p>

该格式与您要查找的格式很接近。

请参见commit 3798149commit 1f0fc1dcommit 618a855commit ac52d94commit 3e8ed3bcommit 4982516commit f0f9de2,{{3} },commit fb2ffa7commit bae74c9(2019年11月20日)由commit bd00717
请参见Denton Liu (Denton-L)commit 0df6211(2019年11月20日)。
(由René Scharfe (rscharfe)Junio C Hamano -- gitster --中合并,2019年12月10日)

  

commit d37cfe3:提供短日期格式

     

签名人:RenéScharfe
  签名人:刘登顿

     

添加占位符%as%cs分别设置作者日期和提交者日期的格式,没有时间部分,就像--date=short一样,即YYYY-MM-DD

为什么?
由于贡献和补丁:

  

pretty:实现“ reference”格式

     

基于补丁程序:SZEDERGábor
  签名人:刘登顿

     

在某些项目中引用其他提交的标准格式(例如pretty)是reference格式。
  在git.git中描述为:

     

如果要引用稳定分支历史中的先前提交,请使用格式“ 缩写哈希(主题,日期)”,如下所示:

....
    Commit f86a374 (pack-bitmap.c: fix a memleak, 2015-03-30)
    noticed that ...
....
     

由于这种格式非常常用,因此请将其标准化为漂亮格式。

Documentation/SubmittingPatches

  

'reference'

<abbrev hash> (<title line>, <short author date>)
     

此格式用于在提交消息中引用另一个提交,与--pretty='format:%C(auto)%h (%s, %ad)'相同。
  默认情况下,日期用--date=short格式化,除非明确指定了另一个--date选项。
  与任何带有格式占位符的format:一样,其输出不受--decorate--walk-reflogs之类的其他选项的影响。


在Git 2.25之前,如pretty-formats documentation now includesWisdmLabs所示,您可以这样做:

git show -s --date=short --pretty='format:%h (%s, %ad)' <commit>

现在(Git 2.25 +):

git show -s --pretty=reference <commit>