Mémo Git · Modifications

Modifier le dernier commit

git commit --amend

git commit --amend remplace le dernier commit par un nouveau, qui reprend le contenu de l'index. Tu peux ainsi corriger son message ou y ajouter un fichier oublié, sans créer un second commit.

Ce que ça fait

Remplace le dernier commit par un nouveau : message corrigé, fichiers ajoutés ou retirés.

Un cas d'usage

Tu viens de commiter et tu remarques une faute dans le message, ou un fichier oublié.

Attention : Réécrit l'historique : si le commit est déjà poussé, il faudra un push forcé.

En ligne de commande

git commit --amend -m "Nouveau message"
Corrige seulement le message.
git add <oublié> && git commit --amend --no-edit
Ajoute un fichier oublié en gardant le message.
git commit --amend --reset-author --no-edit
Met à jour l'auteur et la date du commit.
git push --force-with-lease
Republie le commit modifié s'il avait déjà été poussé.

Dans Merathon

  1. Indexe les éventuels fichiers oubliés.
  2. Coche « Modifier le dernier commit (amend) » : le message précédent est repris.
  3. Corrige le message puis valide.

Questions fréquentes

Comment modifier un commit plus ancien que le dernier ?

Avec un rebase interactif : git rebase -i <commit>^, puis l'action « edit » ou « reword » sur ce commit.

Comment annuler un git commit --amend ?

git reset --soft HEAD@{1} revient au commit d'avant l'amend : le reflog garde sa trace.

Voir aussi