Git tiene un área llamada alijo donde puede almacenar temporalmente una instantánea de sus cambios sin enviarlos al repositorio. Está separado del directorio de trabajo, el área de preparación o el repositorio.
Esta funcionalidad es útil cuando ha realizado cambios en una rama que no está listo para confirmar, pero necesita cambiar a otra rama.
Cambios de alijo
Para guardar sus cambios en el alijo, ejecute el comando:
git stash save "optional message for yourself"
Esto guarda sus cambios y revierte el directorio de trabajo al aspecto que tenía para la última confirmación. Los cambios ocultos están disponibles en cualquier rama de ese repositorio.
Tenga en cuenta que los cambios que desea guardar deben estar en archivos rastreados. Si creó un nuevo archivo e intenta ocultar sus cambios, puede obtener el error No local changes to save
.
Ver cambios ocultos
Para ver lo que hay en su alijo, ejecute el comando:
git stash list
Esto devuelve una lista de sus instantáneas guardadas en el formato [email protected]{0}: BRANCH-STASHED-CHANGES-ARE-FOR: MESSAGE
. La [email protected]{0}
parte es el nombre del alijo, y el número entre llaves ( { }
) es el índice de ese alijo. Si tiene varios conjuntos de cambios guardados, cada uno tendrá un índice diferente.
Si olvidó qué cambios se hicieron en el alijo, puede ver un resumen de ellos con git stash show NAME-OF-STASH
. Si desea ver el diseño de parche típico de estilo diferencial (con + y-para cambios línea por línea), puede incluir la -p
opción (para parche). He aquí un ejemplo:
git stash show -p [email protected]{0} # Example result: diff --git a/PathToFile/fileA b/PathToFile/fileA index 2417dd9..b2c9092 100644 --- a/PathToFile/fileA +++ b/PathToFile/fileA @@ -1,4 +1,4 @@ -What this line looks like on branch +What this line looks like with stashed changes
Recuperar cambios escondidos
Para recuperar los cambios del alijo y aplicarlos a la rama actual en la que se encuentra, tiene dos opciones:
git stash apply STASH-NAME
aplica los cambios y deja una copia en el alijogit stash pop STASH-NAME
aplica los cambios y elimina los archivos del alijo
Puede haber conflictos cuando aplica cambios. Puede resolver los conflictos de forma similar a una fusión (consulte los git merge
detalles).
Eliminar cambios ocultos
Si desea eliminar los cambios ocultos sin aplicarlos, ejecute el comando:
git stash drop STASH-NAME
Para borrar todo el alijo, ejecute el comando:
git stash clear