Restaurer des versions (git checkout)

Fondamental

Le git checkout permet de se déplacer sur un commit de l'historique.

Cette commande va restaurer l'ensemble du projet dans l'état dans lequel il était au moment de ce commit :

  • les fichiers créés depuis seront supprimés,

  • les fichiers supprimés depuis seront restaurés,

  • les modifications faites depuis seront annulées.

Cette fonction permet de donc de remonter dans le passé de n'importe quel état du projet.

Syntaxe

1
git checkout identifiant

Remarque

La commande git checkout master permet de revenir à l'état du dernier commit (donc à l'état présent du présent).

Exemple

1
git checkout 30676ede3ab1aaedc3cd8a6f8abc749efa552858

Cette commande va restaurer l'ensemble du projet dans l'état dans lequel il était au moment du commit 30676ede3ab1aaedc3cd8a6f8abc749efa552858.

Attention

Pour que cette commande soit inoffensive, il est nécessaire que le toutes les modifications courantes du projet aient été commitées.

En effet :

  • la commande git checkout utilisée pour retourner à un état antérieur, va supprimer l'état présent,

  • la commande git checkout pourra ensuite être utilisée pour revenir au dernier état commité.

Mais ce qui n'a pas été commité ne pourra plus jamais être retrouvé.

Remarque

Si la commande git checkout est lancée sur un projet qui comporte des modifications en cours non validées, Git imposera d'annuler ces modifications ou de les commiter avant de pouvoir effectuer le checkout (afin de protéger l'utilisateur d'une perte d'information).

ComplémentHEAD~1, HEAD~2...

La commande git checkout HEAD~1 permet de retourner à la dernière version validée avant celle actuelle (version actuelle "moins une"). De même git checkout HEAD~2 pour retourner deux versions en arrière, etc.

Complémentgit tag

La commande git tag montag identifiant permet d'associer un tag à une version afin de la retrouver plus facilement ensuite.