Jak sprawdzić skąd odbita jest nasza gałąź?

Najlepiej użyć do tego polecenia git merge-base. Pozwala ono znaleźć najbliższego wspólnego przodka.

Komenda

Aby znaleźć wspólnego przodka należy użyć polecenia git merge-base podając jako argumenty nazwy gałęzi:

git merge-base MAIN FEATURE_BRANCH

jeśli zostanie znaleziony wspólny przodek, to zostanie zwrócony jego commit id (sha). Przykładowo:

67c4660f1369b8751257f189bfbfd8dc49acaaa5

W ten sposób można określić skąd się odbiliśmy. Jeśli zaś nie znamy nazwy gałęzi, z której się odbiliśmy to należy niestety przejść przez wszystkie gałęzie.

Szukanie najbliższego przodka we wszystkich gałęziach

Aby znaleźć najbliższego przodka spośród wszystkich dostępnych gałęzi można wykorzystać następujący skrypt shellowy:

your_branch="FEATURE_BRANCH"
for branch in $(git branch --remotes | grep -v HEAD); do
    echo -e "$(git merge-base $your_branch $branch)\t$branch"
done | sort -r | head -n 1

jeśli zostanie znaleziony najbliższy przodek na jakiejś gałęzi to zostanie wyświetlony commit id (sha) oraz nazwa gałęzi. Przykładowo:

67c4660f1369b8751257f189bfbfd8dc49acaaa5        origin/main

Warto zajrzeć

1. https://git-scm.com/docs/git-merge-base