Git Commit --amend
Dernière mise à jour
git commit --amend remplace le commit le plus récent par un nouveau, ce qui vous permet de corriger son message ou d'ajouter des fichiers que vous avez oublié d'indexer. Il n'ajoute pas un second commit ; il réécrit le dernier. Comme cela change le hash du commit, n'amendez que les commits que vous n'avez pas encore poussés.
Essayez ces commandes dans le terminal playground : un vrai shell dans votre navigateur, rien à installer.
Syntaxe
| Command | What it does |
|---|---|
git commit --amend | Modifie le dernier commit et son message |
git commit --amend -m "new message" | Change le message du dernier commit en ligne |
git commit --amend --no-edit | Ajoute les fichiers indexés en gardant le même message |
Cas courants
| Goal | Command |
|---|---|
| Corriger une faute de frappe dans le dernier message | git commit --amend -m "fixed message" |
| Ajouter un fichier oublié au dernier commit | git add file puis git commit --amend --no-edit |
| Amender un commit déjà poussé (prudence) | amendez, puis git push --force-with-lease |
FAQ git commit --amend
Comment changer le message de mon dernier commit ?
Exécutez
git commit --amend -m "new message" pour le remplacer en ligne, ou git commit --amend pour ouvrir votre éditeur et le réécrire. Cela réécrit le dernier commit avec le nouveau message ; ne le faites pas sur un commit que vous avez déjà poussé, sauf si vous êtes prêt à forcer le push.Comment ajouter un fichier oublié au dernier commit ?
Indexez le fichier avec
git add <file>, puis exécutez git commit --amend --no-edit. L'option --no-edit conserve le message de commit existant et intègre simplement les modifications fraîchement indexées au commit précédent.git commit --amend crée-t-il un nouveau commit ?
Non : il remplace le dernier commit au lieu d'en ajouter un. Le résultat ressemble à un seul commit, mais c'est techniquement un nouveau commit avec un nouveau hash qui prend la place de l'ancien. C'est pourquoi amender un historique partagé nécessite un force push.
Est-il sûr d'amender un commit déjà poussé ?
Seulement avec précaution. Amender réécrit le commit, donc après l'avoir poussé vous auriez besoin de
git push --force-with-lease, ce qui peut perturber quiconque a déjà récupéré l'original. Sur une branche partagée, préférez un nouveau commit ou git revert plutôt que d'amender.Puis-je m'entraîner en ligne ?
Oui. Ouvrez le terminal playground pour exécuter
git commit --amend dans un vrai shell dans votre navigateur, rien à installer. Le cours interactif et gratuit de Git de Coddy couvre aussi la correction des commits étape par étape.