Lamentablemente, esto también me sucede con bastante frecuencia y lo uso git stash
si me di cuenta de mi error antes git commit
y usogit cherry-pick
otra manera, ambos comandos se explican bastante bien en otras respuestas
Quiero agregar una aclaración para git checkout targetBranch
: este comando solo preservará su directorio de trabajo y la instantánea por etapas si targetBranch tiene el mismo historial que su rama actual
Si aún no ha confirmado sus cambios, solo use git checkout para pasar a la nueva sucursal y luego confirme normalmente
La declaración de @ Amber no es falsa, cuando se mueve a una nueva rama , git checkout -b newBranch
se crea un nuevo puntero y apunta exactamente a la misma confirmación que su rama actual.
De hecho, si tiene otra rama que comparte el historial con su rama actual (ambas apuntan a la misma confirmación) puede "mover sus cambios"git checkout targetBranch
Sin embargo, por lo general, las diferentes ramas significan un historial diferente, y Git no le permitirá cambiar entre estas ramas con un directorio de trabajo sucio o un área de preparación. en cuyo caso puede hacer git checkout -f targetBranch
(limpiar y descartar cambios) o git stage
+ git checkout targetBranch
(limpiar y guardar cambios), simplemente ejecutar git checkout targetBranch
dará un error:
error: sus cambios locales en los siguientes archivos se sobrescribirán al finalizar la compra: ... Confirme los cambios o guárdelos antes de cambiar de sucursal. Abortar