Revenir à un commit précédent dans le référentiel dans Git

Azhar Bashir Khan 30 janvier 2023
  1. Utiliser git reset pour réinitialiser un commit précédent dans le référentiel Git
  2. Utilisation de git revert pour revenir à un commit précédent dans le référentiel Git
Revenir à un commit précédent dans le référentiel dans Git

Dans ce didacticiel, nous allons apprendre à revenir à un commit précédent dans le référentiel de Git.

Git, un système de contrôle de version, est utilisé dans un environnement de développement collaboratif pour suivre les modifications apportées aux fichiers.

Git est utilisé pour capturer les instantanés des modifications des fichiers dans un répertoire de projet et les associe à des commits.

Dans Git, en utilisant les commits, on peut parcourir et afficher l’historique des modifications apportées aux fichiers.

Nous pouvons également utiliser Git pour réinitialiser ou rétablir les fichiers du répertoire du projet dans le référentiel Git à un commit précédent (c’est-à-dire) l’état des fichiers dans le répertoire, lorsque le commit a été créé.

Nous allons maintenant illustrer cela par un exemple.

Utiliser git reset pour réinitialiser un commit précédent dans le référentiel Git

Dans un environnement de développement collaboratif, nous utilisons Git pour suivre les modifications apportées aux fichiers dans le répertoire du projet dans un référentiel Git.

Lorsque nous créons un commit pour enregistrer notre travail, Git crée un identifiant unique (alias SHA ou hash) qui nous permet de conserver un enregistrement des modifications spécifiques validées ainsi que de qui les a faites et quand.

Un commit est une modification individuelle d’un fichier (ou d’un ensemble de fichiers). Les commits contiennent généralement un message de commit qui est une brève description des modifications apportées.

Parfois, nous pouvons exiger de rétablir ou de réinitialiser le référentiel du répertoire du projet à un commit précédent.

Supposons que nous ayons les commits suivants, comme indiqué par la commande git log dans notre référentiel.

$ git log --oneline
e4cd6b4 (HEAD -> main, origin/main) my change
99541ed second change
41f1f2a first change
...

Maintenant, disons que nous voulons réinitialiser notre référentiel au commit précédent donné par SHA 41f1f2a avec le commentaire first change.

Une façon de faire est de passer temporairement au commit précédent en utilisant la commande git checkout.

Ainsi, nous procéderions comme suit.

$ git checkout 41f1f2a

Nous pouvons également créer une nouvelle branche avec le commit précédent, afin de pouvoir valider les nouvelles modifications dans cette branche.

Ainsi, nous procéderions comme suit.

$ git checkout -b first-change-branch 41f1f2a

Au lieu de cela, si nous voulons annuler les modifications depuis le commit précédent, nous utiliserons la commande git reset.

La syntaxe de la commande git reset pour réinitialiser le référentiel à un commit précédent est git reset -hard <commit-sha-id>.

Ainsi, dans notre cas, nous procéderions comme suit.

$ git reset --hard 41f1f2a

Veuillez noter qu’il faut l’utiliser avec prudence ; cela supprimera également toutes les modifications locales. Toutes les modifications non validées seront perdues.

Alternativement, nous pouvons stocker les modifications avant de procéder à la réinitialisation, comme suit.

$ git stash
$ git reset --hard 41f1f2a
$ git stash pop

Après avoir exécuté les commandes ci-dessus, les modifications locales sont enregistrées dans le stash ; puis, après réinitialisation au commit précédent, ces modifications sont réappliquées au référentiel.

Utilisation de git revert pour revenir à un commit précédent dans le référentiel Git

La commande git revert est utilisée lorsque l’on souhaite conserver l’historique du dépôt.

Lors de l’exécution de la commande git revert, Git crée un commit avec le patch reverse pour annuler le commit précédent. De cette façon, nous ne réécrivons aucune histoire.

La syntaxe de la commande git revert pour rétablir le référentiel à un commit précédent est : git reset <commit-sha-id1> <commit-sha-id2> ....

Ainsi, nous voulons revenir sur les deux premiers commits pour revenir au dépôt au commit donné par SHA 41f1f2a.

$ git revert e4cd6b4 99541ed

Il rétablira le référentiel par les deux commits donnés.

Nous pouvons également exécuter la commande git revert comme suit.

$ git revert HEAD~2..HEAD

La commande git revert ci-dessus annulerait les deux derniers commits.

Enfin, comme mentionné précédemment, la commande git revert crée un commit pour annuler le commit précédent. Ainsi, nous aurions maintenant besoin de sauvegarder ce commit.

Nous devons procéder comme suit.

$ git commit -m "reverted commits e4cd6b4 99541ed"

Ainsi, la réversion des commits est maintenant enregistrée dans le référentiel en tant que nouveau commit.

Dans certains cas, un commit de fusion est présent et nous voudrons peut-être également l’annuler.

On peut utiliser la commande git revert avec l’option -m parent-number ; cette option spécifie le numéro du parent (à partir de 1) de la ligne principale et permet à revert d’inverser le changement par rapport au parent spécifié.

Le commit de fusion a plusieurs parents. La commande git revert a besoin d’informations supplémentaires pour décider quel parent de la fusion doit être considéré comme la ligne principale.

La syntaxe de la commande est git revert -m 1 <commit-sha-id>, le 1 est utilisé pour le premier parent comme ligne principale.

Ainsi, supposons que le commit SHA e4cd6b4 soit un commit de fusion. Ensuite, nous pouvons faire comme suit.

$ git revert -m 1 e4cd6b4

Ainsi, nous avons expliqué comment revenir à un commit précédent dans le référentiel de Git.

Pour plus d’informations, s’il vous plaît visitez -

  1. git-reset
  2. git-revert

Article connexe - Git Reset

Article connexe - Git Revert