获取从提交A到B以及反向获取所需的提交列表的命令是什么? 这实际上是两次提交的提交历史之间的图形差异。
答案 0 :(得分:1)
git rev-list
可以回答这三个不同的,常用的图形差异问题:
B
但无法从A
:A..B
(或B ^A
或B --not A
)A
但无法从B
:B..A
(或类似的替代方案)A
或B
:A...B
(在此处指定A和B的顺序并不重要。)考虑这个图片段:
-1-2-4-5-A
\
3-B
在这种情况下,无法从A
向B
前进,反之亦然,但您可以在顶部进行最后三次提交(4-5-A) ),或者两个沿着底部(3-B),分别带有B..A
和A..B
。您可以使用A...B
获取所有这五个。同时使用A..B
和B..A
,您可以找出从A中删除的内容(A本身,然后是5,然后是4),然后添加(3和B
本身),以获得&# 34;从A到B"。
正如文档所述,提交者默认按时间顺序排列"",但这也是可控制的。您可能需要--topo-order
,有时需要--reverse
。
但是,在存在复杂拓扑的情况下,如上所述的简单序列("删除它,添加")是不够的。例如:
...-x-o-o-o-o-o-B
\ / /
A-o-o-o
所有o
个节点从A
到B
"可能很重要,但现在,没有纯粹的线性遍历(在提交之前提交X) Y,然后提交Z)可以重建完整的图形:您需要更多信息(例如,列出与每个提交相关联的父项)。 git rev-list
可以做到这一切;仔细阅读和研究手册页的例子。