我使用git reflog
来识别创建特定分支时的哈希值。我得到了fe1ddcdef
的哈希值。我还没把这个分支推到遥控器上。我现在正试图找到fe1ddcdef
发生的日期和时间。 git reflog
只显示我:
fe1ddcdef HEAD@{11}: checkout: moving from master to handoff
没有日期或时间。
git log
太冗长了,因为它包含了我所有同事的提交,我不能轻易找到大海捞针fe1ddcdef
。
如何才能简单地找到提交fe1ddcdef
的日期和时间?
答案 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}},D
,r
,t
或i
。有关详细信息,请参阅PRETTY FORMATS section of the git log
documentation。
答案 2 :(得分:1)
答案 3 :(得分:0)
引用提交的规范化方法是abbreviated hash (subject, date)
,没有时间。它称为“参考”。
在Git 2.25(2020年第1季度)中,“ git log
”家族学会了“ --pretty=reference
”,该提交以一种经常在日志消息中引用该提交的格式给出了提交的名称。 / p>
该格式与您要查找的格式很接近。
请参见commit 3798149,commit 1f0fc1d,commit 618a855,commit ac52d94,commit 3e8ed3b,commit 4982516,commit f0f9de2,{{3} },commit fb2ffa7,commit 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 includes的WisdmLabs所示,您可以这样做:
git show -s --date=short --pretty='format:%h (%s, %ad)' <commit>
现在(Git 2.25 +):
git show -s --pretty=reference <commit>