Git лог-график, покажите, как расходятся две ветки

Мы хотели бы просмотреть график того, как две ветки расходятся. Запуск git log --oneline --graph отображает только текущую ветку. Как включить обе ветки в график?

Ответ 1

git log принимает значение 0 или больше в качестве аргументов, показывая историю, ведущую к этой фиксации. Если аргумент не указан, предполагается HEAD. Для вашего случая вы хотите снабдить две ветки головки, которые вы хотите сравнить:

git log --graph --oneline currentbranch otherbranch

Если он не отображается слишком много, вы можете упростить его, используя

git log --graph --oneline --all

который действует так, как если бы вы указали каждую ссылку в .git/refs, как коммит для отображения.

Ответ 2

У меня была та же проблема и я приземлился здесь, но ни один ответ не помог мне показать, как расходятся две ветки. В конце концов я сам экспериментировал и обнаружил, что это работает.

Учитывая ветки A и B, я хочу увидеть, где они расходятся.

git log --oneline --graph --decorate A B 'git merge-base A B'^!

Примечание: не забывайте, что есть ^! в конце. (Это исключает родителей коммита, возвращенного merge-base.)

ОБНОВИТЬ

Команда с одной строкой выше не работает, если база слияния более одного. В этом случае сделайте это:

git merge-base A B -a
# e.g. output XXXX YYYY
git log --oneline --graph --decorate A B --not XXXX^ YYYY^

Ответ 3

git log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all