默认情况下,git log
提交按逆时间顺序显示。
commit 519f71eb2e4e1fa5da429bb01f95d2b6517c4c34
Author: Steve Mao <maochenyan@gmail.com>
Date: Fri Dec 25 21:07:05 2015 +1100
Fourth commit
commit d52ef03bbdb825499ed317172eacb29d6666cb13
Author: Steve Mao <maochenyan@gmail.com>
Date: Fri Dec 25 21:07:04 2015 +1100
Third commit
commit 4992115ed36e0a2135f1ea5bfc6bd6d4aa6ba97a
Author: Steve Mao <maochenyan@gmail.com>
Date: Fri Dec 25 21:07:03 2015 +1100
Second commit
commit 9fc40f59a209c17cb8554afd4476c14126f22ad8
Author: Steve Mao <maochenyan@gmail.com>
Date: Fri Dec 25 21:07:03 2015 +1100
First commit
但如果我运行git log --tags
,则提交顺序不同
commit 519f71eb2e4e1fa5da429bb01f95d2b6517c4c34
Author: Steve Mao <maochenyan@gmail.com>
Date: Fri Dec 25 21:07:05 2015 +1100
Fourth commit
commit d52ef03bbdb825499ed317172eacb29d6666cb13
Author: Steve Mao <maochenyan@gmail.com>
Date: Fri Dec 25 21:07:04 2015 +1100
Third commit
commit 9fc40f59a209c17cb8554afd4476c14126f22ad8
Author: Steve Mao <maochenyan@gmail.com>
Date: Fri Dec 25 21:07:03 2015 +1100
First commit
commit 4992115ed36e0a2135f1ea5bfc6bd6d4aa6ba97a
Author: Steve Mao <maochenyan@gmail.com>
Date: Fri Dec 25 21:07:03 2015 +1100
Second commit
根据https://git-scm.com/docs/git-log
- 标签[=&lt;模式&GT;]
伪装成refs / tags中的所有引用都在命令行中列为&lt; commit&gt;。如果&lt; pattern&gt;给出,将标签限制为匹配给定shell glob的标签。如果模式缺少?
,*
或[
,则隐含最后/*
。
它没有提到订单。那是为什么?
答案 0 :(得分:1)
前两个提交的时间戳似乎相同:
Date: Fri Dec 25 21:07:03 2015 +1100
Date: Fri Dec 25 21:07:03 2015 +1100
(默认排序基于提交时间戳,这显示 author 时间戳,因此我无法证明两个不可见的时间戳是同样的,但这是非常具有启发性的,因为普通提交的作者和提交日期是相同的。)
鉴于时间戳相同,按时间戳排序不会提供特定订单。由于缺少特定的顺序,我们可能会期望git将使用stable sort,因此在使用以下父链接找到的相同时间戳进行提交之前,将显示命令行上指定的提交。因此,如果有一个标记指向commit 9fc40f5...
(“First commit”),并且您在命令行(通过--tags
)给出了该标记,我们可以预期提交将在{{1}之前提交}。
(文档实际上并没有声称它首先使用了稳定的排序,但是如果排序不稳定,我们应该期望在任何一种情况下半等随机排列等时间戳。)< / p>
请注意,添加4992115...
(或--topo-order
,暗示--graph
)应该会使输出更接近我的预期。
答案 1 :(得分:0)
注意另一种情况是git log --tags
更改输出:当您查询不存在模式的标记时(对于不存在的标记)
这已在Git 2.14.x / 2.15(2017年第3季度)
commit 5d34d1a见commit 0159ba3,commit 7ba8262,commit 0c5dc74,Jeff King (peff
)(2017年8月2日)。{
(由Junio C Hamano -- gitster
--合并于commit 8fbaf0b,2017年8月11日)
“
git log --tag=no-such-tag
”从log
开始显示HEAD
已被修复---它现在什么也没有显示。