Commit hecho, mensaje mal escrito o un archivo de más. La pregunta no es cómo deshacerlo, sino si ya has hecho push.
Si aún no has publicado
Para quitar el commit y conservar los cambios como modificaciones locales:
git reset --soft HEAD~1
Si además quieres tirar los cambios a la basura (⚠️ irreversible):
git reset --hard HEAD~1
Si solo quieres corregirlo
--amend reescribe el último commit en lugar de crear uno nuevo. Perfecto para un mensaje mal puesto o un archivo olvidado:
git commit --amend -m "Mensaje correcto"
git add archivo.js
git commit --amend -m "Mensaje correcto"
Si ya has hecho push
Aquí no se reescribe: se añade un commit que deshace al anterior. Es lo seguro cuando otras personas ya tienen ese historial.
git revert 74a1092
Regla rápida: antes del push,
reseto--amend; después del push,revert.
Basado en este artículo de midudev.