如果我运行" git log --graph --oneline --branches = * --date-order"在一个带有两个分支和三个共享提交的git存储库中,我可以得到这样的结果:
* hash9 comment6
* hash8 comment5
* hash7 comment4
| * hash6 comment6
| * hash5 comment5
| * hash4 comment4
| * hash3 comment3
|/
* hash2 comment2
* hash1 comment1
是否有可能得到这样的东西?:
* * hash9 hash6 comment6
* * hash8 hash5 comment5
* * hash7 hash4 comment4
| * hash3 comment3
|/
* hash2 comment2
* hash1 comment1
答案 0 :(得分:1)
您必须编写自己的图形绘制程序。 <{1}}中的图形绘制代码并不是那么聪明。
您的图表绘制程序可能需要git cherry
或(可能更好)其较低级别的表兄git patch-id
。
是否比较提交消息取决于您。如果你这样做,如果消息不同,是提交a123456提交b987654的副本吗?如果区别在于其中一个说git log
而另一个没有?此字符串中的ID可能与提交不匹配,如果两者都是第三次提交的挑选(一个(cherry picked from commit ...)
而另一个没有-x
);第三次提交可能不再出现在您正在绘制的图形部分中,甚至可能不在存储库中,如果它已经老化并被垃圾收集(例如,由于变基)。
如果从分支提示-x
中找到此提交序列,该怎么办:
A
并从分支提示* a555555 last commit
* a444444 fourth commit
* a333333 third commit
* a222222 second commit
* a111111 first commit
* a000000 common base
中找到此序列:
B
你将如何展示这个案子?当我从一个带有一些实验工作的分支开始时,我创建了很多这样的链,然后在重新处理特定提交之前创建它的新版本并将其重新定义为更合理的顺序。