Git - как найти первую фиксацию конкретной ветки

В следующем дереве примеров:

A-B-C-D-E (master branch)
    \
     F-G-H (xxx branch)

Я ищу F - первый фиксатор в ветке xxx. Я думаю, что это возможно с помощью:

git log xxx --not master

а последний указанный коммит должен быть F. Правильно ли это решение или, возможно, есть некоторые недостатки?

Я знаю, что были похожие вопросы в stackoverflow, но никто не предлагал такого решения, и я не уверен, что я делаю это правильно.

Ответ 1

git log master..branch --oneline | tail -1

точка-точка дает вам все коммиты, которые у ветки нет у этого мастера. tail -1 возвращает последнюю строку из предыдущего вывода.

Ответ 2

git rev-list --ancestry-path $(git merge-base master xxx)..xxx | tail -1