Git: как найти кратчайший путь между коммитами - PullRequest
0 голосов
/ 29 ноября 2018

Учитывая большой репозиторий git с сотнями веток / тысяч коммитов и нерегулярную стратегию слияния веток, как определить кратчайший путь между двумя коммитами?Другими словами, какой путь ветвей от более раннего коммита A к более позднему коммиту B пересекает наименьшее количество коммитов?

(В моем случае я пытаюсь отследить историю ветки 'development', которая непреднамеренно имелабыла объединена с функциональными ветками с помощью ускоренной перемотки вперед. Стратегия «кратчайшего пути» казалась практичным подходом, но я просматривал справочные страницы для git-log и git-rev-list [v1.8.3.1],но не нашел ни одного варианта, который, кажется, делает это. Я что-то упускаю очевидное?

1 Ответ

0 голосов
/ 29 ноября 2018

Я не уверен, что вы спрашиваете, но чтобы узнать, как 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

...