Herramientas avanzadas: rebase, stash, cherry-pick y etiquetas
Pasamos a las herramientas que diferencian a un usuario avanzado de Git de quien solo conoce lo básico. Analizaremos rebase como alternativa a merge, mostrando cuándo limpia el historial y cuándo lo convierte en una pesadilla. Añadiremos stash para 'aparcar' rápidamente trabajo sin terminar, cherry-pick para transferir commits específicos y etiquetas para marcar lanzamientos.
- Podrás usar git stash para cambiar de contexto entre tareas sin perder cambios.
- Entenderás la diferencia entre rebase y merge y podrás elegir conscientemente entre ellos según el contexto.
- Aprenderás a editar el historial de commits usando rebase interactivo y a marcar versiones de lanzamiento con etiquetas.
Simula ng leksyon
Problema: cómo aparcar trabajo sin terminar
- Una corrección urgente interrumpe tu trabajo
- No se puede hacer commit de código sin terminar
- Git stash: almacenamiento temporal de cambios
- Guarda tanto archivos rastreados como no rastreados
- Devuelve el directorio de trabajo a un estado limpio
Imagina: estás en medio del desarrollo de una nueva funcionalidad para Telefónica y de repente llega una corrección urgente para BBVA. No quieres dejar el trabajo a medias, pero tampoco puedes hacer commit de código sin terminar. Para estas situaciones existe git stash: tu estantería digital temporal. Es como pausar un videojuego: guardas el progreso actual y puedes atender otra tarea. Cuando vuelvas, todo estará exactamente como lo dejaste, incluyendo archivos no rastreados si usaste la bandera -u. Esto te evitará tener que mantener múltiples tareas en mente al mismo tiempo.
Guardando y revisando cambios
- git stash save — guarda cambios en el almacén
- git stash list — muestra la lista de cambios guardados
- Cada stash recibe un ID único
- stash@{0} — último cambio guardado
- El almacén conserva el estado del directorio de trabajo
Veamos cómo trabajar con git stash en la práctica. El comando git stash save guardará todos los cambios en el directorio de trabajo y los archivos en staging, devolviéndote un estado limpio. Tus avances no se perderán: se guardarán en un almacén especial. Para verificar que los cambios se han guardado, ejecuta git stash list. Verás una lista de todas las tareas aparcadas con identificadores únicos como stash arroba cero. Esto es especialmente útil cuando necesitas cambiar rápidamente entre tareas sin perder el progreso.
# Guardamos los cambios actuales
git stash save "WIP: Nuevo formulario de inicio de sesión"
# Verificamos la lista de cambios guardados
git stash list
# Vemos el contenido del último stash
git stash show -p
Recuperando cambios en espera
- git stash pop — aplica y elimina el último stash
- git stash apply — aplica sin eliminar
- Posibles conflictos al modificar el código
- Los conflictos se resuelven manualmente
- stash@{n} — referencia a un almacenamiento específico
Cuando llega el momento de retomar el trabajo en espera, tienes dos opciones. El comando git stash pop aplicará los últimos cambios guardados y los eliminará de la lista de stash. Si prefieres revisar los cambios o aplicarlos varias veces, utiliza git stash apply, ya que los cambios permanecerán en el almacenamiento. Es importante recordar: si el código ha cambiado desde que guardaste el stash, podrían surgir conflictos. En ese caso, Git te informará del problema y deberás resolver los conflictos manualmente.
# Recuperamos los últimos cambios en espera
git stash pop
# O aplicamos sin eliminar
git stash apply
# Aplicamos un stash específico por índice
git stash apply stash@{1}
Buong leksyon ay para sa subscription
25 pang slide sa buong bersyon.
Mabubuksan ang video, lahat ng slide, tala, pagsusulit, AI tutor, at interview pagkatapos mag-sign in at mag-subscribe.
Mag-sign in o magparehistro Mag-subscribeNilalaman ng leksyon
- Problema: cómo aparcar trabajo sin terminar
- Guardando y revisando cambios
- Recuperando cambios en espera
- Cuándo el stash puede ser perjudicial
- Cómo funciona la fusión de ramas
- Rebase: reescribiendo el historial de commits
- Cuándo usar cada herramienta: escenarios prácticos
- Peligros del rebase: qué puede salir mal
- ¿Qué es rebase y para qué sirve?
- Ejecutando rebase: guía paso a paso
- Resolviendo conflictos durante rebase
- Rebase interactivo: tu editor de historial de commits
- Comandos principales del rebase interactivo
- Práctica: creando un historial perfecto
- Precaución: modificando el historial publicado
- Por qué no debes hacer rebase de ramas compartidas
- Cómo recuperarse de un rebase fallido
- Corrección segura del historial
- ¿Para qué sirve cherry-pick en Git?
- Cómo usar git cherry-pick
- Cuándo elegir: cherry-pick vs merge vs rebase
- Etiquetas en Git: marcadores para commits importantes
- Creando etiquetas anotadas y ligeras
- Publicar etiquetas en el repositorio remoto
- Escenario: arreglo urgente durante el desarrollo
- Integración de cambios mediante rebase y cherry-pick
- Errores comunes y cómo evitarlos
- Resumen: Tu nuevo arsenal de herramientas de Git
Mga artikulo tungkol sa araling ito
- git rebase: paano ito gumagana, interactive mode, at squash ng commit
- Mga command ng Git: cheat sheet na may mga halimbawa para sa araw-araw
- Git merge vs rebase: alin ang piliin para sa team ninyo
- git stash: paano pansamantalang itabi ang mga pagbabago at ibalik ang mga ito
- Mga tanong tungkol sa Git sa job interview: 25 tanong na may sagot
Lahat ng leksyon ng kurso
- Introducción: Git desde cero hasta desarrollador seguro
- Por qué necesitamos Git y por qué es imprescindible para conseguir trabajo
- Instalación y configuración: preparando Git para su primer uso
- Primer repositorio: init, add, commit y la magia del índice
- Leyendo el historial: log, diff, show y navegación por el pasado
- Ramas: la realidad paralela de tu código
- Deshaciendo cambios: restore, reset, revert — correcto y peligroso
- GitHub y repositorios remotos: tu código en la nube
- Trabajo en equipo: forks, ramas de características y pull requests
- Conflictos de fusión: no entres en pánico, comprende y resuelve
- Flujos de trabajo con Git en equipos reales: ¿qué workflow elegir?
- Herramientas avanzadas: rebase, stash, cherry-pick y etiquetas
- Proyecto final: simulando un desarrollo en equipo real