Aller au contenu

git commit --amend

Définition et utilisation

Lorsque vous travaillez avec Git, vous pouvez souvent oublier de formater le commit ou d'ajouter un fichier à l'index. La commande git commit --amend est le moyen le plus simple de corriger ce type d'erreurs. Elle sert à modifier les derniers commits. Au lieu de créer un tout nouveau commit, vous pouvez exécuter cette commande pour combiner les modifications ajoutées à l'index avec le commit précédent. De plus, cette commande permet de modifier le message du commit précédent sans changer son instantané. Gardez à l'esprit que git commit --amend remplace entièrement le commit actuel. Nous examinerons quelques façons d'utiliser git commit --amend.

git commit --amend

Modification du message du dernier commit Git

Si vous avez effectué un commit et commis une erreur dans le message du journal de commit, vous pouvez exécuter git commit --amend pour modifier le message du commit précédent sans changer son instantané. Vous pouvez fournir un nouveau message directement depuis la ligne de commande sans avoir à ouvrir un éditeur, en utilisant l'option -m.

git commit --amend

bash
git commit --amend -m "an updated commit message"

Modification des fichiers déjà commités

Imaginons que vous ayez modifié plusieurs fichiers que vous souhaitez commités dans un seul instantané, mais que vous ayez oublié d'en ajouter un lors de la première tentative. Vous pouvez résoudre ce problème en ajoutant l'autre fichier à l'index et en commitant en utilisant le drapeau --amend. Ajoutez le drapeau --no-edit pour modifier votre commit sans changer le message. En conséquence, le commit incorrect sera remplacé par le bon, et la séquence de commandes sera la suivante :

git commit --amend --no-edit

bash
# Modify project.py and text.py
git add project.py
git commit
# You forgot to add the changes from text.py
git add text.py
git commit --amend --no-edit

Éviter de modifier des commits publics

En effet, les commits modifiés sont de nouveaux commits et, après avoir modifié un commit, l'ancien ne sera pas supprimé de la branche actuelle. C'est pourquoi vous ne devez jamais modifier un commit sur lequel d'autres membres de l'équipe travaillent, car cela causerait de nombreux problèmes de collaboration. Vous constaterez donc que les conséquences sont les mêmes que dans le cas d'une réinitialisation d'un instantané public.

Pratique

Quelles sont les affirmations correctes concernant la commande `git commit --amend` selon le tutoriel Git de W3Docs ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.