Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Annuler un Commit Spécifique | Annuler les Modifications
Essentiels de Git
course content

Contenu du cours

Essentiels de Git

Essentiels de Git

1. Introduction à Git
2. Interaction Plus Avancée
3. Annuler les Modifications
4. Travailler avec les Branches dans Git

book
Annuler un Commit Spécifique

git revert

Comme nous l'avons déjà mentionné, pour annuler un commit spécifique, la commande git revert est utilisée. Cette commande crée un nouveau commit qui annule les modifications introduites par le commit spécifié. La syntaxe de base est la suivante :

Comme vous pouvez le voir, au lieu d'utiliser HEAD comme nous l'avons fait pour annuler le dernier commit, nous devons maintenant spécifier le hash d'un commit particulier (ID de commit) que nous voulons annuler (remplacez <commit-hash> par un hash valide).

Plus sur les Hashes

Rappelez-vous, chaque commit a son ID unique qui est essentiellement une chaîne de chiffres (0-9) et de lettres (a-f), une chaîne hexadécimale. Cette chaîne de 40 caractères est appelée hash. Jetons un coup d'œil à notre dernier commit :

Voici son hash :

1b00736255dca7d78659a9971d0c30fba0eb3075

Remarque

Vous aurez un hash différent pour ce commit pour la raison expliquée ci-dessous.

Le hash du commit est calculé en utilisant l'algorithme SHA-1 basé sur les informations suivantes :

  • message du commit;
  • date;
  • auteur;
  • instantané de l'arbre de travail;
  • hash du commit parent (ou des commits lorsqu'il y a plus d'un parent).

Si le commit est le premier dans le 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, utiliser des hashes comme identifiants de commit assure 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 peu probable que cela se produise par hasard.

En gros, si quelque chose est modifié dans le commit, son hash changera aussi. Cela signifie qu'en cas de corruption des données pour une raison quelconque, Git peut utiliser le hash pour l'identifier.

Remarque

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 décider quel commit annuler, jetons un coup d'œil aux quatre derniers commits :

Nous pouvons voir qu'il y a un commit où nous avons ajouté le fichier recipe.txt. Réalisons un revert de ce commit en créant un nouveau commit qui annulera ces modifications et supprimera essentiellement le fichier. Dans mon cas, son hash est le suivant :

043b634d76a7a7744757350512b6367417c29e0

Cependant, votre hash pour ce commit sera différent. Nous pouvons maintenant revert ce commit :

Remplacez ce hash par votre hash.

Encore une fois, l'éditeur de texte par défaut s'ouvre avec le message de commit par défaut pour le revert. Nous le laisserons tel quel.

Ensuite, nous fermerons correctement l'éditeur de texte et montrerons les modifications apportées dans ce dernier commit :

7 suppressions ont eu lieu, ce qui signifie que les 7 lignes du fichier ont été supprimées. Vérifions maintenant que le fichier lui-même a été supprimé en listant tous les fichiers et répertoires non cachés dans notre répertoire de projet :

Félicitations ! Nous avons supprimé avec succès le fichier recipe.txt.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 5
We're sorry to hear that something went wrong. What happened?
some-alt