Comencé a hacer cambios en mi base de código, sin darme cuenta de que estaba en una rama de tema antigua. Para transferirlos, quería guardarlos y luego aplicarlos a una nueva rama fuera del maestro. Solía git stash pop
transferir los cambios de trabajo en progreso a esta nueva rama, olvidando que no había introducido nuevos cambios en el maestro antes de crear la nueva rama. Esto dio lugar a 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 vuelva a crear la nueva rama correctamente, ¿cómo puedo recuperar mis cambios escondidos para aplicarlos correctamente?
git stash drop
como el último paso para deshacerse del alijo no deseado del # 2.git stash pop
: "La aplicación del estado puede fallar con los conflictos; en este caso, no se elimina de la lista de ocultación. Debe resolver los conflictos a mano y llamargit stash drop
manualmente después". ( git-scm.com/docs/git-stash )Por suerte
git stash pop
no no cambie el alijo en el caso de un conflicto!Así que nada, de qué preocuparse, simplemente limpie su código y vuelva a intentarlo.
Digamos que su base de código estaba limpia antes, podría volver a ese estado con:
git checkout -f
Luego, haga las cosas que olvidó, por ejemplo,
git merge missing-branch
después de eso simplemente dispare
git stash pop
nuevamente y obtenga el mismo alijo, que entró en conflicto antes.Atención: el alijo es seguro, sin embargo, los cambios no confirmados en el directorio de trabajo no lo son. Pueden enredarse.
fuente
git stash pop
intento de fusión automática, en conflicto y lo guardé.git stash pop
con la frecuencia que necesite hasta que termine sin conflicto. Entonces, después de su conflicto, sí, el directorio de trabajo está en desorden, sin embargo, puede limpiarlo ygit stash pop
volver a llamar .git checkout -f
:!Las instrucciones aquí son un poco complicadas, así que voy a ofrecer algo más sencillo:
git reset HEAD --hard
Abandonar todos los cambios a la rama actual...
Realizar trabajos intermedios según sea necesariogit stash pop
Vuelva a abrir el alijo nuevamente en una fecha posterior cuando esté listofuente
debe funcionar, si su estado anterior es limpio.
fuente