Qué hace amend
git commit --amend reemplaza el commit más reciente con uno nuevo que incluye lo que tengas staged actualmente, más un mensaje opcional. No "edita" el commit; crea uno nuevo con el mismo padre.
Tres escenarios comunes de amend
# 1. Arreglar un typo en el último mensaje
git commit --amend -m "Fix avatar upload race condition"
# 2. Añadir archivos olvidados al último commit
git add forgotten-file.js
git commit --amend --no-edit
# 3. Reemplazar los cambios staged por completo
git add -A
git commit --amend
La regla de seguridad: nunca enmiendes commits ya pushed
# SEGURO: solo tú tienes este commit
git commit --amend
# PELIGROSO: el commit está en origin
git commit --amend
git push --force # no hagas esto en branches compartidos
Force-with-lease para branches en solitario
git commit --amend
git push --force-with-lease
Recuperar de un mal amend
git reflog
git reset --hard HEAD@{1}
Amend vs fixup
git commit --fixup <sha-to-fix>
git rebase -i --autosquash <sha-to-fix>^
Fechas de autor
git commit --amend --reset-author --no-edit