Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git日志--标记更改提交顺序_Git_Git Log - Fatal编程技术网

git日志--标记更改提交顺序

git日志--标记更改提交顺序,git,git-log,Git,Git Log,默认情况下,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 <

默认情况下,
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

--标签[=]
假设参照/标记中的所有参照都列在命令行中。如果给定,则将标记限制为与给定shell glob匹配的标记。如果模式缺少
*
[
,则暗示结尾处有
/*


它没有提到顺序。这是为什么?

前两次提交上的时间戳似乎是相同的:

Date:   Fri Dec 25 21:07:03 2015 +1100
Date:   Fri Dec 25 21:07:03 2015 +1100
(默认排序基于提交时间戳,这显示了作者时间戳,因此我无法证明两个不可见的时间戳是相同的,但这很有启发性,因为在普通提交中,作者和提交日期是相同的)

考虑到时间戳是相同的,按时间戳排序不会提供特定的顺序。如果没有特定的顺序,我们可能会认为git将使用,并因此在提交之前按照命令行上的指定显示提交,并使用通过父链接找到的同一时间戳。因此,如果有一个标记指向提交
9fc40f5…
(“第一次提交”),您在命令行上给出了(通过
--tags
),我们可以预期提交将出现在
4992115…
之前

(文档实际上也没有声称它首先使用了稳定的排序,但是如果排序不稳定,我们应该期望在任何一种情况下都有相等的时间戳被半随机地洗牌。)


请注意,添加
--topo order
(或
--graph
,这意味着
--topo order
)将迫使输出更接近我认为您期望的结果。

注意还有另一种情况,
git log--tags
会更改输出:当您为不存在的模式查询标记时(对于不存在的标记也是如此).
这已在Git 2.14.x/2.15(2017年第三季度)中修复

参见,,(2017年8月2日)作者。
(于2017年8月11日被合并)

git log--tag=no-this-tag
”显示了从
HEAD
开始的
log
,其中 已经修复,现在没有显示任何内容


Lol什么。是的,这些提交是由bot创建的,但是操作是同步的。所以我认为虽然时间戳是相同的,但它们是按顺序创建的。让我用另一种方式试试。
git log
表示
git log HEAD
但是
git log--tags
表示
git log tag1 tag2 tag3…
。首先是将de>HEADcommit进入要显示的所有提交列表,然后添加(按时间顺序)可以从
到达的附加提交,在
前面的较新提交,在
之后的相同日期或更早的提交。第二个提交将特定标记放入列表中,然后添加可到达的提交,较新的提交在前面,相同日期或更早的提交在后面。两个提交具有完全相同的日期戳,它们将在wha中结束不要把它看作是“错误的”顺序;没有“之前”来修复它。顺便说一句,我不是要为这种情况下的
git log
输出辩护,只是为了解释它。我认为它应该在更多情况下进行拓扑排序——至少,在这种情况下打破联系。
Date:   Fri Dec 25 21:07:03 2015 +1100
Date:   Fri Dec 25 21:07:03 2015 +1100