El Desarrollador Viajero del Tiempo

GitBeginner
Practicar Ahora

Introducción

Imagina que eres un desarrollador trabajando en un proyecto de una máquina del tiempo. ¡De repente, tu "yo" del futuro aparece y te advierte sobre un error crítico en el código actual! Necesitas guardar rápidamente tu trabajo en curso, corregir el error y luego retomar tu tarea actual. ¡Este desafío pondrá a prueba tus habilidades con Git stash en un escenario de alto riesgo y saltos temporales!

Guardar, Corregir y Reanudar

Estado Inicial

Te encuentras en el directorio ~/project. El directorio time-machine es un nuevo repositorio de Git que contiene los siguientes archivos:

  • main-console.txt (contenido: "Bug: Temporal Flux Unstable")
  • flux-capacitor.txt (contenido: "Work in progress")
  • new-feature.txt (contenido: "Untracked feature")

Puedes usar el comando git status para verificar el estado actual del repositorio.

Tareas

  1. Guarda en el stash tus cambios actuales, incluyendo cualquier archivo que no esté bajo seguimiento (untracked).
  2. Corrige el "error crítico" en la rama master actualizando el contenido de main-console.txt a "Fixed: Temporal Flux Stabilized".
  3. Crea una nueva rama a partir de tus cambios guardados en el stash, llamada future-upgrades.
  4. Asegúrate de que la corrección del error realizada en la rama master también esté presente en la rama future-upgrades.

Requisitos

  • Todas las operaciones deben realizarse en el directorio ~/project/time-machine.
  • Asegúrate de que tus cambios originales (tanto los rastreados como los no rastreados) estén presentes en la nueva rama.
  • La corrección del error en main-console.txt debe figurar tanto en la rama master como en la rama future-upgrades.

Ejemplo

Tras completar el desafío, tu repositorio debería verse así:

En la rama master:

main-console.txt (content: "Fixed: Temporal Flux Stabilized")

En la rama future-upgrades:

main-console.txt (content: "Fixed: Temporal Flux Stabilized")  ## Contiene la corrección de master
flux-capacitor.txt (content: "Work in progress")              ## Cambios rastreados originales
new-feature.txt (content: "Untracked feature")                ## Archivo no rastreado original

Nota: Para lograr este estado, deberás asegurarte de que ambas ramas contengan la corrección del error mientras preservas tus avances de trabajo en la rama future-upgrades.

✨ Revisar Solución y Practicar

Resumen

En este desafío, has practicado el uso de Git stash en un escenario de emergencia simulado. Has aprendido a guardar rápidamente tu trabajo en curso (incluyendo archivos no rastreados), cambiar de contexto para solucionar un problema crítico y luego crear una nueva rama a partir de tus cambios guardados. Estas habilidades son fundamentales para mantener un flujo de trabajo fluido cuando surgen tareas inesperadas, permitiéndote gestionar múltiples responsabilidades sin perder tus avances ni romper tu concentración.

Recuerda que, aunque Git stash es una herramienta potente para almacenar cambios temporalmente, es ideal para un uso a corto plazo. Para trabajos de larga duración o funcionalidades importantes, crear ramas dedicadas suele ser un mejor enfoque. ¡Sigue practicando estas habilidades y estarás bien preparado para cualquier escenario de desarrollo temporal que se te presente!