Sin fecha
Comandos de Git que nadie te enseña (pero que sí necesitas)
Aprendes add, commit, push, pull. Pero hay comandos que aparecen el día menos esperado y que, si no los conoces, te hacen perder horas.
Comandos de Git que nadie te enseña (pero que sí necesitas)
Aprendes add, commit, push, pull. Pero hay comandos que aparecen el día menos esperado y que, si no los conoces, te hacen perder horas.
git stash
Guarda temporalmente tus cambios sin hacer commit. Tu directorio de trabajo queda limpio, pero no pierdes nada.
# Guardar cambios actuales
git stash
# Recuperarlos después
git stash pop
# Ver qué tienes guardado
git stash list
# Guardar con un nombre descriptivo
git stash push -m "wip: formulario de login"
El problema que resuelve
Estás a mitad de una feature.
Llega un bug urgente en main.
No puedes hacer commit de algo incompleto.
git stash salva tu trabajo, cambias de rama, resuelves el bug, vuelves.
Úsalo cuando… necesitas cambiar de contexto rápido sin perder progreso.
Evítalo cuando… acumulas stashes sin nombre. Se vuelve un cajón de sastre.
git bisect
Encuentra qué commit introdujo un bug usando búsqueda binaria. Git va descartando commits a la mitad hasta aislar al culpable.
# Iniciar búsqueda
git bisect start
# Marcar el estado actual como roto
git bisect bad
# Marcar un commit antiguo donde todo funcionaba
git bisect good abc1234
# Git te mueve a commits intermedios.
# Prueba y dile si está bien o mal:
git bisect good
git bisect bad
# Cuando Git encuentre el commit culpable:
git bisect reset
¿Por qué importa?
Si tienes 500 commits entre "funcionaba" y "está roto", bisect lo resuelve en ~9 pasos. Manualmente serían horas.
git reflog
El historial de todo lo que has hecho, incluso cosas que ya no están en el árbol de commits. Es tu red de seguridad.
# Ver el log de referencia
git reflog
# Recuperar un commit "perdido"
git checkout -b rescate HEAD@{3}
# Deshacer un reset --hard equivocado
git reset --hard HEAD@{2}
El problema que resuelve
Hiciste git reset --hard y "perdiste" commits.
git log no los muestra.
git reflog sí.
Úsalo cuando… creas que borraste algo importante. Casi siempre se puede recuperar.
git blame
Muestra quién escribió cada línea de un archivo y en qué commit. Útil para entender contexto, no para señalar culpables.
# Ver autoría línea por línea
git blame archivo.js
# Ignorar cambios de formato/espaciado
git blame -w archivo.js
# Solo un rango de líneas
git blame -L 10,30 archivo.js
Uso correcto | Uso equivocado |
Entender por qué se escribió algo así | Buscar a quién culpar |
Encontrar el commit donde apareció algo | Hacer arqueología sin contexto |
Contactar a quien sabe de esa parte del código | Asumir que el autor se equivocó |
git shortlog
Resume los commits por autor. Útil para ver quién ha contribuido qué.
# Resumen por autor
git shortlog -s -n
# Solo entre dos fechas
git shortlog -s -n --since="1 month ago"
Pequeño pero poderoso para entender la actividad de un repositorio.
Resumen
Comando | Para qué sirve |
| Guardar trabajo en progreso sin commit |
| Encontrar el commit que rompió algo |
| Recuperar commits "perdidos" |
| Ver quién escribió cada línea |
| Resumen de contribuciones por autor |
Git no es solo add, commit, push. Estos comandos son los que separan a alguien que usa Git de alguien que lo entiende.
No gana quien más comandos sabe, sino quien sabe cuándo usarlos.
Practica lo que has aprendido aquí