Deshacer git stash pop que resulta en conflicto de fusión

Empecé a hacer cambios en mi base de código, sin darme count de que estaba en una twig de tema anterior. Para transferirlos, quería esconderlos y luego aplicarlos a una nueva twig fuera de master. git stash pop para transferir los cambios de trabajo en progreso a esta nueva twig, olvidando que no había hecho nuevos cambios en el maestro antes de crear la nueva twig. Esto resultó en un montón de conflictos de fusión y la pérdida de un alijo limpio de mis cambios (ya que usé pop).

Una vez que recreé la nueva twig correctamente, ¿cómo puedo recuperar mis cambios ocultos para aplicarlos correctamente?

Como resultado, Git es lo suficientemente inteligente como para no dejar un alijo si no se aplica de forma limpia. Pude llegar al estado deseado con los siguientes pasos:

  1. Para dejar de lado los conflictos de fusión: git reset HEAD .
  2. Para save la combinación conflictiva (por si acaso): git stash
  3. Para volver al máster: git checkout master
  4. Para get los últimos cambios: git fetch upstream; git merge upstream/master git fetch upstream; git merge upstream/master
  5. Para corregir mi nueva sucursal: git checkout new-branch; git rebase master git checkout new-branch; git rebase master
  6. Para aplicar los cambios escondidos correctos (ahora segundo en la stack): git stash apply stash@{1}

Por suerte, git stash pop no cambia el alijo en caso de conflicto.

Entonces, nada de lo que preocuparse, simplemente limpie su código y vuelva a intentarlo.

Digamos que su base de código estaba limpia antes, puede volver a ese estado con: git checkout -f
Luego haz las cosas que olvidaste, por ejemplo, git merge missing-branch
Después de eso, solo vuelve a disparar git stash pop y obtienes el mismo alijo, que entró en conflicto antes.