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

问题描述 投票:0回答:2

给定一个包含数百个分支/数千个提交的大型 git 存储库,以及不规则的分支合并策略,如何确定两次提交之间的最短路径?换句话说,从较早的提交 A 到较晚的提交 B 的哪一条分支路径跨越的提交数量最少?

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

git git-log git-rev-list
2个回答
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"

并获得如下输出:


0
投票

可能不完全相关,但这对我“追踪‘开发’的历史”很有用:

git log 25ab137285..2fbdf0a100 --ancestry-path --first-parent --oneline

25ab137285
2fbdf0a100
是在所需分支上的提交(例如
develop

© www.soinside.com 2019 - 2024. All rights reserved.