git rev-list与git rev-list --date-order有什么不同?

时间:2014-03-28 13:45:33

标签: git

根据git rev-list的手册页:

  

默认情况下,提交按逆时间顺序显示。

--date-order选项的解释是:

  

此选项类似于--topo-order,因为没有父项在其所有子项之前出现,但是其他内容仍按提交时间戳顺序排序。

如果我指定--date-order或不指定{{1}},有什么区别?在这两种情况下,是提交日期还是作者日期的提交顺序?

1 个答案:

答案 0 :(得分:1)

默认情况下,git不强加"在孩子之前没有父母"并且似乎是对历史进行深度优先遍历。您最终可能会在输出中间某处的存储库中进行第一次提交。

- 日期顺序和--topo-order确实在孩子面前强加了一个额外的"没有父母"约束输出顺序。

最近的git版本有一个somewhat better explanation

  

- 日期订单

     

在显示所有子项之前不显示父项,但以提交时间戳顺序显示提交。

     

- TOPO阶   在显示所有子项之前不显示父项,并避免在多行历史记录中混合显示提交。

     

例如,在这样的提交历史中:

---1----2----4----7
    \              \
     3----5----6----8--- 
     

其中数字表示提交时间戳的顺序,git rev-list和带有--date-order的朋友显示   按时间戳顺序提交:8 7 6 5 4 3 2 1.

     

使用--topo-order,他们会显示8 6 5 3 7 4 2 1(或8 7 4 2 6 5 3   1);一些较旧的提交在新的提交之前显示以避免   显示来自两个平行开发轨道的提交混合   在一起。