Hábitos que luego cuestan caro
Git no castiga el error el mismo día: a menudo el problema aparece semanas después, cuando necesitas un mensaje claro, un historial limpio o una clave que ya no debería estar en el repo. Esta sección recoge patrones reales. En cada bloque verás qué se suele hacer mal, por qué duele y cómo hacerlo mejor.
Mal
git add .
git commit -m "asdf"
git push --force
Qué ocurre: metes en el commit todo lo que haya en la carpeta (a veces secretos o basura), dejas un mensaje inútil y, con --force, reescribes historia que otros pueden haber bajado ya.
Mejor: revisa el diff antes de commitear. Escribe un mensaje con verbo y motivo. Reserva el force push a ramas tuyas que nadie más use, y aun así con cuidado.
Mal
# en el repo
secrets.php
.env
foto-de-vacaciones-40MB.jpg
Qué ocurre: el historial guarda esos archivos para siempre. Un commit posterior que los borre no los saca del pasado. Una clave filtrada hay que rotarla en el servicio, no «deshacer» con otro commit.
Mejor: un .gitignore desde el primer día. Si se coló un secreto: cámbialo ya en GitHub, en la API o en el hosting.
Mal
git pull
# conflictos
git add .
git commit -m "merge"
Qué ocurre: puedes dejar marcadores <<<<<<< dentro del código y romper la web. El mensaje «merge» no explica qué elegiste en cada choque.
Mejor: abre cada archivo en conflicto, deja el código bueno, borra los marcadores, comprueba que el proyecto arranca y entonces stage + commit.
Mal
Trabajar dos semanas sin commit y cerrar con un único «todo el trabajo».
Qué ocurre: si algo se rompe no hay un punto intermedio al que volver. El diff es ilegible. En Git GUI aparece un Unstaged enorme y da miedo preparar el commit.
Mejor: commits pequeños cuando una pieza ya funciona: «Formulario de contacto: validar email».
Mal
Editar el mismo archivo a la vez en dos clones «porque Git lo junta solo».
Qué ocurre: a veces el merge es automático; a veces no, y pierdes media hora. Git compara líneas, no intenciones.
Mejor: pull al empezar la jornada, push al cerrar una pieza, y avisar al compañero si vais a tocar el mismo fichero.
Mal
Usar Git GUI, no pulsar Rescan, y pensar que «Git no detecta el archivo».
Qué ocurre: Git GUI no vigila el disco al momento. Hasta Rescan, la lista Unstaged está congelada.
Mejor: Rescan (F5) después de guardar en el editor. O prepara el stage desde Cursor / VS Code, que sí actualizan al guardar.