标签: git git-log git-rev-list
给出一个大型的git存储库,其中包含数百个分支/数千个提交以及不规则的分支合并策略,那么如何确定两次提交之间的最短路径?换句话说,从最早的提交A到后来的提交B的分支路径中最少的提交次数是多少?
(在我的情况下,我试图追溯“开发”分支的历史,该分支无意间通过快进合并到了功能分支中。“最短路径”策略似乎是一种可行的方法,但是我已经一直在浏览git-log和git-rev-list [v1.8.3.1]的帮助页面,但是没有找到似乎可以做到这一点的任何选项。我是否遗漏了一些明显的东西?)
答案 0 :(得分:2)
我不确定您要问什么,但是要找到A如何到达B,您可以使用以下方法:
git log commitA..commitB
您可以使用--graph和--simplify-merges标志来使其更清晰。
--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"
并获得如下输出: