19. Almacenamiento oculto: guardar cambios temporalmente
El desarrollo de software es un proceso dinámico y los desarrolladores a menudo necesitan gestionar diferentes tareas al mismo tiempo. Durante este proceso, puede surgir la necesidad de cambiar entre ramas sin querer comprometer el trabajo actual que aún no está listo para comprometerse. Aquí es donde el concepto de Stashing en Git se vuelve extremadamente útil.
¿Qué es el ocultamiento?
git stash
es un comando poderoso que permite a los desarrolladores guardar sus cambios locales temporalmente en un área que Git llama "alijo". Estos cambios pueden ser modificaciones en archivos rastreados o archivos nuevos que aún no se han agregado al índice (preparados). El alijo es una pila, lo que significa que puedes tener varios alijos y administrarlos como una lista.
¿Cuándo utilizar Stashing?
El almacenamiento oculto es especialmente útil cuando:
- Estás en medio del trabajo y necesitas cambiar rápidamente de contexto, como corregir un error crítico en otra rama.
- Quieres probar algo en tu código sin crear una confirmación para esos cambios.
- Necesita limpiar su directorio de trabajo para realizar cambios ascendentes sin realizar sus propios cambios.
Cómo ocultar cambios
Para crear un nuevo alijo, simplemente puedes ejecutar:
git stash
Esto guardará los cambios y limpiará el directorio de trabajo. Si desea incluir cambios en archivos que aún no han sido rastreados por Git (archivos sin seguimiento), puede usar:
git stash -u
O, para incluir también archivos ignorados:
git stash -a
Si quieres darle a tu alijo un nombre específico para recordar el contexto de los cambios, puedes usar:
git stash save "mensaje explicativo"
Listado e inspección de alijos
Para ver todos los alijos que has creado, utiliza:
lista de alijo de git
Cada entrada en la lista tendrá un identificador único en forma de stash@{
donde
es un número que indica la posición de la esconder en la pila.
Para ver qué hay dentro de un alijo específico sin aplicarlo, puedes usar:
git stash show -p stash@{}
Aplicar un alijo
Cuando estés listo para continuar trabajando en los cambios que guardaste, puedes aplicar el último alijo con:
aplicar git stash
O uno específico con:
git stash apply stash@{}
Esto vuelve a aplicar los cambios guardados en su directorio de trabajo, pero mantiene el alijo en la pila. Si desea aplicar y eliminar alijo de la pila, puede utilizar:
git stash pop
Afrontar el conflicto
Cuando aplica un alijo, pueden ocurrir conflictos si su directorio de trabajo actual tiene cambios que se superponen con los cambios del alijo. En este caso, Git te alertará sobre los conflictos y tendrás que resolverlos manualmente, tal como lo harías con una fusión.
Eliminar un alijo
Si quieres descartar un alijo que sabes que ya no necesitarás, puedes eliminar uno específico con:
git stash drop stash@{}
O bien, para borrar todos los alijos:
git stash clear
Ramas y alijos
A veces puede resultar útil guardar una nueva rama. Esto se puede hacer con:
git stash rama stash@{}
Esto crea una nueva rama a partir de la confirmación donde se creó el alijo, aplica el alijo y, si tiene éxito, elimina el alijo de la pila.
Prácticas recomendadas con almacenamiento
- Utilice mensajes descriptivos al guardar reservas para que sean más fáciles de identificar en el futuro.
- Evita acumular demasiados alijos. Aplícalos o deséchalos regularmente para mantener manejable tu reserva.
- Antes de aplicar un alijo, asegúrese de estar en la rama correcta y de que su directorio de trabajo esté limpio.
Conclusión
Stashing es una característica increíblemente útil de Git que permite a los desarrolladores gestionar cambios temporales de manera eficiente. Le brinda la flexibilidad para manejar las interrupciones del flujo de trabajo y ayuda a mantener limpio su directorio de trabajo. Comprender y utilizar el almacenamiento oculto puede aumentar significativamente su productividad y facilitar la gestión de tareas paralelas en el desarrollo de software.