Back to the futur

La gestion du versioning c’est la capacité à traverser le temps et l’espace. Il est possible de retrouver l’état d’un fichier ou du projet dans un version antérieur (ou postérieur).

Il existe plusieurs façons de revenir en arrière.

 

  • Git checkout : mode spectateur

En tapant git checkout <identifiant du commit>, vous pouvez revenir dans le passé au moment du commit choisi. Cependant, la commande checkout permet uniquement de visualiser l’état du projet au moment du commit. Cette commande permet de vérifier l’état du projet au moment du commit pour pouvoir choisir le moment où vous souhaitez retourner en arrière.

Afin de retourner dans le présent (HEAD), il faut taper git checkout master.

 

 

  • Git checkout pour retrouver un fichier dans un état passé

Cependant, il existe un moyen de retrouver l’état passé d’un fichier ou d’un répertoire : git checkout <identifiant commit> <nom du fichier>.

 

NB : vous pouvez ensuite ajouter, faire un commit et push dans la branche de votre choix.

 

  • Git revert : annuler un commit

En tapant git revert <identifiant du commit>, vous pouvez annuler un commit que vous avez fait par le passé. Cette commande peut être utilisée pour annuler le dernier commit. L’avantage de cette commande est qu’elle créé un nouveau commit ‘revert’, sans modifier l’historique.

 

  • Git restore : restaurer l’état passé

git restore permet de restaurer l’état passé d’un fichier. Il peut être utilisé de deux façons :

-Après avoir ajouté le fichier dans la zone de transit, tapez git restore --staged <fichier> pour le retirer de la zone de transit.

-Lorsque le fichier n’est pas dans la zone de transit, tapez git restore <fichier> pour annuler la dernière modification.

 

NB : git restore restaure l’état passé sans laisser de trace. S’il n’y a pas de trace dans l’historique, vous ne pourrez pas annuler la restauration. C’est donc radical.

 

  • Git reset

git reset est similaire à git restore mais permet de retourner à l’état passé non seulement d’un fichier mais de toutes les dernières modifications.

-Après avoir modifié et ajouté plusieurs fichiers dans la zone de transit, tapez git reset pour les retirer de la zone de transit.

-Vous pouvez retirer les fichiers de la zone de transit et annuler les dernières modifications des fichiers en tapant git reset --hard.

 

 

  • Git reset pour retourner dans un commit passé

De plus, git reset permet de retourner dans l’état d’un commit précédent en gardant les modifications. Pour cela, tapez git reset <identifiant du commit>.

Imaginons que nous avons créé un fichier ‘azzer.txt’ et que nous l’avons commit.

Nous souhaitons retourner dans l’état du projet avant ce commit, donc dans le commit précédent.

 

NB : il existe des options avec git reset :

git reset --soft : retour dans un commit précédent en laissant les modifications dans la zone de transit.

git reset --mixed : (par défaut) retour dans un commit précédent en gardant les modifications, pas encore ajoutées dans la zone de transit.

git reset --hard : (attention !) retour dans un commit précédent en supprimant les modifications.