Ce que fait amend
git commit --amend remplace le commit le plus récent par un nouveau qui inclut ce que vous avez actuellement staged, plus un message optionnel.
Trois scénarios courants d'amend
# 1. Corriger une coquille dans le dernier message
git commit --amend -m "Fix avatar upload race condition"
# 2. Ajouter des fichiers oubliés au dernier commit
git add forgotten-file.js
git commit --amend --no-edit
# 3. Remplacer entièrement les changements staged
git add -A
git commit --amend
La règle de sécurité : ne jamais amender des commits poussés
# SÛR : seul vous avez ce commit
git commit --amend
# DANGEREUX : le commit est sur origin
git commit --amend
git push --force # ne le faites pas sur des branches partagées
Force-with-lease pour les branches en solo
git commit --amend
git push --force-with-lease
Récupérer d'un mauvais amend
git reflog
git reset --hard HEAD@{1}
Amend versus fixup
git commit --fixup <sha-to-fix>
git rebase -i --autosquash <sha-to-fix>^
Dates d'auteur
git commit --amend --reset-author --no-edit