Git y GitHubGit AvanzadoLección 7 de 15
Cherry-pick, Reset y Revert
cherry-pick te permite traer un commit específico de cualquier rama a tu rama actual. Reset modifica dónde apunta HEAD. Revert crea un commit que deshace otro, de forma segura.
La diferencia clave: reset reescribe la historia (peligroso en público), revert crea nueva historia que deshace cambios (seguro en main).
# CHERRY-PICK: traer un commit específico
# Ver el SHA del commit que quieres
git log --oneline feature/hotfix
# abc1234 fix: corregir bug crítico de seguridad
git switch main
git cherry-pick abc1234
# Aplica los cambios de ese commit en main
# Cherry-pick múltiples commits
git cherry-pick abc1234 def5678
# --- GIT RESET ---
# --soft: mueve HEAD, mantiene staging y archivos
git reset --soft HEAD~1
# Útil para: deshacer el commit pero mantener los cambios staged
# --mixed (default): mueve HEAD, limpia staging, mantiene archivos
git reset HEAD~1
# Útil para: deshacer commit y staging, trabajar los cambios
# --hard: mueve HEAD, limpia staging Y archivos (PELIGROSO)
git reset --hard HEAD~1
# ⚠️ Los cambios se PIERDEN permanentemente
# --- GIT REVERT ---
# Crea un nuevo commit que deshace otro (SEGURO)
git revert abc1234
# Crea: "Revert: feat: agregar funcionalidad X"
# Revertir sin abrir el editor
git revert abc1234 --no-edit
Consejo🔴 git reset --hard descarta cambios permanentemente. Antes de usarlo, asegúrate de que no necesitas esos cambios. git revert es siempre la opción segura para ramas públicas.
Practica esta lección
Resuelve los ejercicios del curso de Git y GitHub en la app, gratis y con corrección automática.
Empezar a practicar