OK, penso di essere riuscito a trovare un flusso di lavoro che ti riporterà dove devi essere (come se non avessi fatto il pop).
PRENDI UN BACKUP PRIMA DI !! Non so se questo funzionerà per te, quindi copia l'intero repository nel caso in cui non funzioni.
1) Risolvi i problemi di unione e correggi tutti i conflitti selezionando tutte le modifiche che provengono dalla patch (in tortoisemerge, questo appare come one.REMOETE (loro)).
git mergetool
2) Conferma queste modifiche (saranno già aggiunte tramite il comando mergetool). Dagli un messaggio di "unione" o qualcosa che ricordi.
git commit -m "merge"
3) Ora avrai ancora le modifiche locali non messe in scena che hai iniziato originariamente, con un nuovo commit dalla patch (possiamo liberarcene in seguito). Ora esegui il commit delle modifiche non messe in scena
git add .
git add -u .
git commit -m "local changes"
4) Invertire la patch. Questo può essere fatto con il seguente comando:
git stash show -p | git apply -R
5) Commetti questi cambiamenti:
git commit -a -m "reversed patch"
6) Sbarazzarsi dei commit di patch / unpatch
git rebase -i HEAD^^^
da questo, rimuovere le due righe con 'unisci' e 'patch inversa' al suo interno.
7) Ripristina le modifiche non programmate e annulla il commit "modifiche locali"
git reset HEAD^
L'ho passato con un semplice esempio e ti riporta dove vuoi essere - direttamente prima che la scorta fosse spuntata, con le tue modifiche locali e con la scorta ancora disponibile per essere pop.