Revenir à un commit précédent dans le référentiel dans Git
-
Utiliser
git reset
pour réinitialiser un commit précédent dans le référentiel Git -
Utilisation de
git revert
pour revenir à un commit précédent dans le référentiel 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 -
Article connexe - Git Reset
- Annuler la réinitialisation de Git
- Annuler les modifications dans Git
- Supprimer les commits locaux dans Git
- Annuler la dernière validation dans un référentiel Git distant
- Rétablir un dépôt Git par l'ID du commit
- Supprimer les commits non poussés dans Git