Jugar
← Volver al blog

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

git stash

Guardar trabajo en progreso sin commit

git bisect

Encontrar el commit que rompió algo

git reflog

Recuperar commits "perdidos"

git blame

Ver quién escribió cada línea

git shortlog

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í