OK, je pense que j'ai réussi à trouver un workflow qui vous ramènera là où vous devez être (comme si vous n'aviez pas fait le pop).
FAITES UNE SAUVEGARDE AVANT LA MAIN !! Je ne sais pas si cela fonctionnera pour vous, alors copiez l'intégralité de votre repo au cas où cela ne fonctionnerait pas.
1) Corrigez les problèmes de fusion et corrigez tous les conflits en sélectionnant toutes les modifications qui proviennent du correctif (dans tortoisemerge, cela apparaît comme un. REMOETE (le leur)).
git mergetool
2) Validez ces modifications (elles seront déjà ajoutées via la commande mergetool). Donnez-lui un message de validation de «fusion» ou quelque chose dont vous vous souvenez.
git commit -m "merge"
3) Maintenant, vous aurez toujours vos modifications locales non mises en scène que vous avez commencées à l'origine, avec un nouveau commit du patch (nous pouvons nous en débarrasser plus tard). Maintenant, validez vos modifications non programmées
git add .
git add -u .
git commit -m "local changes"
4) Inversez le patch. Cela peut être fait avec la commande suivante:
git stash show -p | git apply -R
5) Validez ces modifications:
git commit -a -m "reversed patch"
6) Débarrassez-vous des commits patch / unpatch
git rebase -i HEAD^^^
à partir de là, supprimez les deux lignes contenant «fusionner» et «patch inversé».
7) Récupérez vos modifications intangibles et annulez la validation des «modifications locales»
git reset HEAD^
Je l'ai parcouru avec un exemple simple et il vous ramène là où vous voulez être - directement avant que la cachette ne soit sautée, avec vos modifications locales et avec la cachette toujours disponible pour la pop.