WindowsMacSoftwareConfiguraciónSeguridadProductividadLinuxAndroidRendimientoConfiguraciónApple Todo

Cómo archivar cambios en Git

Editado 2 Hace unas semanas por ExtremeHow Equipo Editorial

GitAlmacénWindowsMacLinuxLínea de comandosDesarrolloControl de VersionesControl de FuenteFlujo de trabajoProductividad

Cómo archivar cambios en Git

Traducción actualizada 2 Hace unas semanas

Git es uno de los sistemas de control de versiones más utilizados en el mundo del desarrollo de software. Fue creado por Linus Torvalds en 2005 para el desarrollo del kernel de Linux. Desde entonces, ha sido usado en proyectos de software de todos los tamaños, por equipos de desarrolladores... a veces incluso por desarrolladores que trabajan solos. Git te ayuda a rastrear versiones de código, colaborar con múltiples desarrolladores y asegurar que siempre puedes volver a versiones anteriores de tu software cuando sea necesario.

Cuando trabajas en un proyecto gestionado por Git, puede haber momentos en los que necesites cambiar de branch. Por ejemplo, podrías estar trabajando en una nueva funcionalidad y de repente surge un informe de un error crítico que necesita ser arreglado de inmediato. En tales casos, querrás cambiar de contexto y trabajar en la corrección del error sin perder tu progreso en la funcionalidad en la que estabas trabajando. Aquí es donde Git Stash es útil.

Entendiendo Git Stash

Git stash es una poderosa característica que permite a los desarrolladores guardar temporalmente sus cambios sin confirmarlos en el repositorio. Efectivamente, "almacena" los cambios que has realizado, permitiéndote cambiar a un nuevo branch sin tener que confirmar una nueva característica que puede no estar lista para que otros la vean. Cuando estés listo, puedes aplicar estos cambios de nuevo a tu copia de trabajo o a otro branch.

Cuando ejecutas el comando git stash, tus cambios se guardan en una pila. Esta pila puede contener múltiples stashes, y puedes aplicar cualquiera de los stashes listados más tarde. Un solo stash es una combinación de:

Una vez que los cambios están guardados, tu directorio de trabajo está limpio, y puedes cambiar de branch, compilar tu código o hacer cualquier otra cosa que necesites. Después de haber completado esa tarea, puedes volver a tu trabajo original aplicando o tomando el stash.

Comandos básicos de Git Stash

Para comenzar a usar stash en Git, necesitas estar familiarizado con algunos comandos básicos. Aquí tienes un vistazo a los comandos más importantes:

1. Mantener tu cambio de dinero seguro

Para almacenar tus cambios, usa el siguiente comando:

git stash push

Esto guardará tus modificaciones locales y revertirá tu directorio de trabajo para que coincida con el commit HEAD. Es como si nunca hubieras hecho esos cambios.

2. Ocultarse con el mensaje

A menudo es útil incluir un mensaje con tus cambios ocultos para una fácil identificación:

git stash push -m "tu mensaje de stash"

Este mensaje te ayuda a recordar qué cambios hay en este stash sin referirte a los cambios a nivel de línea.

3. Listar el stash almacenado

Para ver una lista de todas tus colecciones guardadas:

git stash list

Este comando imprimirá una lista de todos los stashes que has guardado y sus mensajes asociados.

4. Aplicar stash

Para volver a aplicar el último stash:

git stash apply

Este comando aplica el último stash a tu directorio de trabajo actual, pero no lo elimina de la lista de stash.

5. Aplicar stash específico

Si deseas aplicar un stash específico, usa:

git stash apply stash@{n}

Reemplaza stash@{n} con el stash específico que deseas aplicar, el cual puedes identificar a partir del resultado de git stash list.

6. Tomar stash

Para aplicar y eliminar inmediatamente el último stash:

git stash pop

Esto es similar al comando apply, pero también elimina el stash aplicado de tu lista.

7. Eliminar el stash

Si deseas eliminar un stash en particular (sin aplicarlo), usa:

git stash drop stash@{n}

Esto destruirá el stash especificado.

8. Limpiar todos los almacenamiento secretos

Si deseas eliminar todos los stash, el comando es:

git stash clear

Usa este comando con precaución, ya que destruirá permanentemente todos los cambios almacenados.

Un ejemplo de flujo de trabajo

Considera un escenario en el que estás desarrollando una nueva característica en el branch feature-xyz, y has realizado varios cambios en tu copia de trabajo. De repente, necesitas arreglar un error grave en el branch principal.

Una guía paso a paso para usar Git Stash

  1. Ver cambios actuales: Asegúrate de que los cambios que deseas guardar no se hayan comprometido aún. Puedes verificar su estado actual mediante:
    git status
  2. Proteger tus cambios: Protege tus modificaciones con un mensaje descriptivo:
    git stash push -m "Guardando trabajo en feature-xyz"
  3. Cambiar de branch: Cambia a main o cualquier otro branch en el que necesites trabajar:
    git checkout main
  4. Arreglar el error: Haz los cambios necesarios para corregir el error y confiértalos.
    git commit -a -m "Corrección de error crítico"
  5. Revertir a tu branch de características: Una vez arreglado el error, regresa al branch de características:
    git checkout feature-xyz
  6. Aplicar tus cambios almacenados: Restaura tu trabajo desde el almacenamiento:
    git stash pop

    Si hay algún desacuerdo, resuélvelo y luego continúa con tu trabajo.

Casos de uso avanzados y flags

Git Stash ofrece cierta flexibilidad con opciones más avanzadas:

1. Archivar archivos no rastreados

Por defecto, git stash push solo almacenará cambios en archivos rastreados. Para incluir archivos no rastreados:

git stash push -u

Esto archivará tanto los archivos rastreados como los no rastreados.

2. Ocultar archivos ignorados

Si también deseas almacenar archivos ignorados (archivos excluidos explícitamente por .gitignore):

git stash push --all

3. Ocultar parte del archivo

Puedes archivar selectivamente partes de archivos usando:

git stash -p

Este comando es interactivo y te permite seleccionar fragmentos específicos para almacenar.

4. Implementar stash con índices

Para volver a aplicar los cambios almacenados, incluidos los cambios en el índice (staged changes), usa:

git stash apply --index

Ten en cuenta que esto puede causar conflictos si hay cambios conflictivos en el índice.

Entendiendo los conflictos de stash

Si bien el stashing y unstashing son generalmente sencillos, pueden surgir conflictos, especialmente cuando el stash se aplica a una base de código actualizada. Si ocurren conflictos, Git los marcará como conflictos de fusión. Debes editar los archivos afectados, resolver los conflictos manualmente y marcarlos como resueltos:

git add <archivo>

Una vez resueltos, puedes continuar trabajando y eventualmente presentar tus cambios.

Mejores prácticas para Git Stash

Aquí hay algunos consejos para que trabajar con Git Stash sea más fácil y efectivo:

Conclusión

Git stash es una herramienta versátil en el arsenal del desarrollador, particularmente útil para preservar el trabajo no comprometido y cambiar temporalmente de referencias. Al comprender cómo usar Git stash efectivamente, los desarrolladores pueden manejar cambios sin problemas a través de diferentes tareas, mejorando la eficiencia y flexibilidad en su flujo de trabajo.

Desde guardar trabajo inconcluso hasta enfocarse en errores importantes, implementar correctamente las capacidades de git stash en tu flujo de trabajo puede hacer que gestionar cambios de código sea más fácil y manejable. A medida que te sientas cómodo con Git stash, descubrirás que se convierte en una parte indispensable de tu conjunto de herramientas de desarrollo.

Si encuentras algo incorrecto en el contenido del artículo, puedes


Comentarios