Referencia esencial de comandos Git para desarrolladores
Desde clonar hasta rebase y recuperarte tras un force-push desastroso: los comandos Git que realmente usas, con invocaciones copiables y explicaciones de una línea.

Más utilidades que combinan bien con esta guía:
Por qué importa
Un ingeniero nuevo hace git push --force a la rama principal del equipo y borra los commits de ayer. La recuperación son 30 segundos con git reflog — si sabes que existe. Git es implacable en sintaxis pero generoso en redes de seguridad, y muchos desarrolladores usan el 10 % de su potencia porque nunca pasaron de clone, commit, push. Una chuleta categorizada es una de las referencias con más retorno que puede tener un equipo.
Tres escenarios reales
git rebase -i main y pick / squash. La referencia muestra los verbos del rebase interactivo.
Historial limpio en main
git bisect start good bad, marca cada prueba como good o bad; Git divide hasta aislar al culpable.
Causa raíz en ~log₂ commits
git reflog muestra cada movimiento de HEAD; git reset --hard <reflog-id> restaura.
Desastre evitado
Guía paso a paso — usando la referencia
Abre la referencia de comandos Git.
Explorar por etapa del flujo
Configuración, commits diarios, ramas, sincronización con remotos, reescritura de historial, depuración, recuperación.
Buscar un verbo
Escribe «rebase», «stash» o «cherry-pick»; aparecen los comandos con explicación.
Copiar la invocación canónica
Cada entrada tiene una línea «lo que realmente escribes» y una variante multilínea con opciones.
Leer la nota de trampa
Muchas entradas advierten sobre
--force,pull --rebasevs merge por defecto, etc.Marcar comandos frecuentes
Guarda categorías (p. ej. «reescritura de historial») para recuperarlas rápido bajo estrés.
Objetivo
Start a feature, save WIP, sync with main,
finish, push for PR.Comandos
git checkout -b feature/payment-retry
# work, work, work
git add . && git commit -m "WIP retry logic"
git fetch origin
git rebase origin/main
# fix any conflicts, then:
git push -u origin feature/payment-retrySíntoma
You ran `git reset --hard HEAD~5`
and now the last 5 commits seem gone.Solución
git reflog # find the SHA before the reset
git reset --hard <SHA> # restore HEAD to it
Consejos útiles
- Usa
git switchygit restoreen lugar de sobrecargarcheckout.switches para ramas;restorepara archivos. Menos ambigüedad, menos errores. --first-parentengit logcolapsa ruido de merges y muestra solo la línea principal.- Configura
pull.rebase = truepara quegit pullrebase por defecto — elimina commits de merge repetidos en ramas de feature. git commit --amendpara arreglar el último commit;git rebase -ipara los anteriores. No amends tras push a rama compartida.
Trampas comunes
Error frecuente
Force-push borra el trabajo de un compañero
git push --force-with-lease en lugar de --force aborta si el remoto cambió desde tu último fetch. Úsalo siempre; reserva --force para ramas solo tuyas.
Error frecuente
Secretos comprometidos por error
git filter-repo (o BFG Repo-Cleaner) reescribe el historial para quitar el archivo. Luego rota el secreto filtrado de inmediato.
Error frecuente
`git rebase main` en lugar de `git rebase origin/main`
Puedes rebasar contra un main local obsoleto. Haz git fetch primero o rebase contra origin/main explícito.
Cuándo no es la herramienta adecuada
- Visualizar grafos de ramas — una GUI (Lazygit, GitKraken, extensión Git Graph de VS Code) suele ser más rápida que
git log --graph. - Revisión de código —
git diffmuestra el diff, pero GitHub/GitLab/Gerrit llevan comentarios y aprobaciones. - Gestión de binarios grandes — Git LFS o
git annexson lo adecuado, no Git vanilla.
Preguntas frecuentes
¿Qué es «fast-forward»?
Un merge fast-forward mueve el puntero de la rama por una línea continua de commits — sin commit de merge. Común cuando la rama objetivo no ha avanzado desde que empezó la tuya.
¿Cuándo usar `git stash`?
Para WIP realmente descartable. Para trabajo serio, mejor un commit wip en rama temporal — los stashes se olvidan y se pierden con facilidad.
¿Las entradas del reflog duran para siempre?
No. Expiran a los 90 días por defecto para entradas normales, 30 para inalcanzables. Después solo git fsck --lost-found podría recuperar algo.
Próximos pasos
- Combina Git con la referencia Linux para utilidades shell (grep, find, awk).
- Inspecciona URLs y puertos remotos con el analizador de URL.
- Cruza códigos HTTP de
git push(401, 403, 502) con la referencia HTTP.