ConceptoBloque 3 · Ramas y conflictos
Apartar cambios sin hacer commit
Explicación
A veces estás a medio cambio y necesitas moverte a otra rama, pero lo que llevas todavía no merece un commit. git stash aparta esos cambios y deja la carpeta como estaba en el último commit.
Es como la paquetería del súper: dejas tus bolsas, te dan una ficha y entras con las manos libres. Al salir entregas la ficha y te devuelven tus cosas.
| Comando | Qué hace |
|---|---|
git stash |
Aparta los cambios de archivos que Git ya conoce (modificados y en staging) |
git stash list |
Muestra lo apartado; stash@{0} es lo más reciente |
git stash pop |
Regresa los cambios y borra la entrada |
git stash apply |
Regresa los cambios, pero conserva la entrada |
git stash -u |
Incluye también archivos nuevos sin git add |
git stash push -m "mensaje" |
Le pone nombre a la ficha |
- Por defecto, stash no aparta archivos nuevos que nunca agregaste: se quedan en la carpeta y te siguen a la otra rama.
- Si
popencuentra un conflicto, la entrada no se borra. Se resuelve como cualquier conflicto y después se borra congit stash drop.
Riesgo:
git stash dropygit stash clearborran entradas, y el reflog no las rescata. No acumules stashes olvidados: después nadie recuerda qué eran.