Annulation d'un Commit Spécifique
Glissez pour afficher le menu
git revert
Pour annuler un commit spécifique, utiliser la commande git revert.
Cette commande crée un nouveau commit qui annule les modifications introduites par le commit spécifié.
Syntaxe de base :
git revert <commit-hash>
Au lieu d'utiliser HEAD (qui cible le dernier commit), spécifier le hash du commit (ID du commit) à annuler en remplaçant <commit-hash> par la valeur réelle du hash.
Plus d'informations sur les hashes
Chaque commit possède un identifiant unique — une chaîne hexadécimale de 40 caractères composée de chiffres (0–9) et de lettres (a–f). Cet identifiant est appelé un hash. Afficher maintenant le dernier commit :
git log -n 1
Voici son hash :
1b00736255dca7d78659a9971d0c30fba0eb3075
Vous aurez un hash différent pour ce commit pour la raison expliquée ci-dessous.
Le hash du commit est calculé à l'aide de l'algorithme SHA-1 à partir des informations suivantes :
- Message du commit ;
- Date ;
- Auteur ;
- Instantané de l'arborescence de travail ;
- Hash du commit parent (ou des commits parents lorsqu'il y en a plusieurs).
Si le commit est le premier du dépôt, alors le hash du commit parent n'est apparemment pas calculé.
Puisque toutes ces informations de commit sont utilisées pour calculer son hash, l'utilisation des hashes comme identifiants de commit garantit la cohérence du dépôt. De plus, la probabilité que deux commits différents aient le même hash (la probabilité de collision) est extrêmement faible, il est donc très improbable que cela se produise par hasard.
En résumé, si quelque chose est modifié dans le commit, son hash changera également. Cela signifie qu'en cas de corruption des données pour une raison quelconque, Git peut utiliser le hash pour l'identifier.
Lors de la modification d'un commit, l'identifiant du commit change, c'est pourquoi il est préférable de ne pas utiliser la commande git commit --amend lors du travail avec des dépôts distants.
Exemple de flux de travail
Avant de choisir le commit à annuler, afficher les quatre derniers commits :
git log -n 4
Il existe un commit où le fichier recipe.txt a été ajouté.
Annuler ce commit pour en créer un nouveau qui annule ces modifications et supprime effectivement le fichier.
Dans cet exemple, le hash du commit est :
043b634d76a7a7744757350512b6367417c29e0
Votre hash de commit sera différent. Maintenant, annulez ce commit :
git revert 043b634d76a7aa7744757350512bb3b7417c29e0
Remplacez ce hash par votre propre hash.
Encore une fois, l’éditeur de texte par défaut s’ouvre avec le message de commit par défaut pour l’annulation. Laissez le message inchangé.
Ensuite, fermer correctement l'éditeur de texte et afficher les modifications apportées dans le dernier commit :
git show HEAD
7 suppressions ont eu lieu, ce qui signifie que les sept lignes du fichier ont été supprimées. Vérifiez maintenant que le fichier lui-même a été supprimé en listant tous les fichiers et répertoires non cachés dans le répertoire du projet :
ls -l
Le fichier recipe.txt a été supprimé avec succès.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion