OK, myślę, że udało mi się znaleźć przepływ pracy, który doprowadzi cię z powrotem do miejsca, w którym musisz być (tak jakbyś nie zrobił popu).
ZAPRASZAMY WCZEŚNIEJ! Nie wiem, czy to zadziała, więc skopiuj całe repozytorium na wypadek, gdyby nie zadziałało.
1) Napraw problemy z łączeniem i napraw cały konflikt, wybierając wszystkie zmiany, które pochodzą z łatki (w żółwiku pokazuje się to jako jeden. REMOETE (ich)).
git mergetool
2) Zatwierdź te zmiany (zostaną one już dodane za pomocą polecenia scaletool). Przekaż mu komunikat zatwierdzenia „scalenia” lub coś, co pamiętasz.
git commit -m "merge"
3) Teraz nadal będziesz mieć lokalne nieskalowane zmiany, które zacząłeś pierwotnie, z nowym zatwierdzeniem z łatki (możemy się tego później pozbyć). Teraz zatwierdź swoje nieetapowe zmiany
git add .
git add -u .
git commit -m "local changes"
4) Odwróć łatkę. Można to zrobić za pomocą następującego polecenia:
git stash show -p | git apply -R
5) Zatwierdź następujące zmiany:
git commit -a -m "reversed patch"
6) Pozbądź się patch / unpatch commits
git rebase -i HEAD^^^
z tego usuń dwie linie z „scaleniem” i „odwróconą łatką”.
7) Odzyskaj niezmienione zmiany z powrotem i cofnij zatwierdzenie „zmiany lokalne”
git reset HEAD^
Przeanalizowałem go z prostym przykładem i pozwala wrócić do miejsca, w którym chcesz być - bezpośrednio przed wyskakowaniem skrytki, z lokalnymi zmianami i skrytką nadal dostępną.