Git:如何找到两次提交之间的最短路径

时间:2018-11-29 18:13:28

标签: git git-log git-rev-list

给出一个大型的git存储库,其中包含数百个分支/数千个提交以及不规则的分支合并策略,那么如何确定两次提交之间的最短路径?换句话说,从最早的提交A到后来的提交B的分支路径中最少的提交次数是多少?

(在我的情况下,我试图追溯“开发”分支的历史,该分支无意间通过快进合并到了功能分支中。“最短路径”策略似乎是一种可行的方法,但是我已经一直在浏览git-log和git-rev-list [v1.8.3.1]的帮助页面,但是没有找到似乎可以做到这一点的任何选项。我是否遗漏了一些明显的东西?)

1 个答案:

答案 0 :(得分:2)

我不确定您要问什么,但是要找到A如何到达B,您可以使用以下方法:

git log commitA..commitB

您可以使用--graph--simplify-merges标志来使其更清晰。

您还可以像这样美化日志:

git log --simplify-merges --graph --pretty="tformat:%C(yellow)%h%Creset\\ %Cgreen(%ar)%Creset\\ %C(blue)<%an>%Creset\\ %C(red)%d%Creset\\ %s"

并获得如下输出:

enter image description here