给定一个包含数百个分支/数千个提交的大型 git 存储库,以及不规则的分支 merge 策略,如何确定两次提交之间的最短路径?换句话说,从较早的提交 A 到较晚的提交 B 的哪条分支路径中交叉的提交次数最少?
(就我而言,我试图追踪“开发”分支的历史,该分支无意中通过快进 merge 到功能分支中。“最短路径”策略似乎是一种实用的方法,但我已经一直在浏览 git-log 和 git-rev-list [v1.8.3.1] 的帮助页面,但没有找到任何似乎可以做到这一点的选项。我是否遗漏了一些明显的东西?)
最佳答案
我不确定你在问什么,但要找到 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"
并获得如下输出:
关于Git:如何找到提交之间的最短路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53545195/