Formation Git en vidéo
👆 Cliquez sur l'image pour découvrir la formation en vidéo

Revenir en arrière et supprimer les modifications

Nous connaissons déjà la commande git reset --hard. Nous l’avons étudié dans la leçon pour tout annuler.

Mais nous l’avions utilisé sans y mettre de numéro de commit.

Dans cette partie, nous nous servirons du numéro d'un commit.

Utilisation de la commande git reset --hard

Lorsque l’on utilise git reset --hard avec un numéro de commit, nous retournons en arrière et les modifications sont supprimés.

Si l’on avait créé de nouveaux fichiers, ils auraient été supprimés.

Faisons un test.

git reset 7dd8a1c --hard

Qu’est-ce qui s’est passé ?

  • Notre fichier server.js a été modifié (suppression des modifications depuis le commit choisi)
  • Le fichier server.js n’est dans aucun état

Vérifions !

git status
On branch master
nothing to commit, working tree clean
git log --oneline

Et vérifions l’historique !

7bb8617 (HEAD -> master) Ajouter la variable port
7dd8a1c Ajouter le dossier fruits
c12ddda On ajoute names.js
308576e Utilisation des options -am
0032296 Création de deux fichiers

De plus, notre fichier server.js a été modifié. La ligne let port = '8888'; a disparu.

Tout fonctionne comme prévu !

⚠️ Attention danger

Cette commande est dangereuse, car elle supprime des choses dans votre projet et dans vos fichiers. Faites très attention et réfléchissez bien avant d’utiliser cette commande.

😮‍💨 Possibilité de rattraper une erreur

Il est cependant possible de récupérer les informations perdues grâce à la commande git log --reflog. Pour en savoir plus, dirigez-vous vers la leçon correspondante.

Illustration

Fichier server.js modifié

Fichier modifié

Fichier server.js commité

Fichier commité

Commande git reset 7dd8a1c --hard exécuté

git reset <commit> --hard