Polar Code 🎭

Command Palette

Search for a command to run...

03
Pièce N°03

MODULE 3 – HISTORIQUE ET NAVIGATION

Code Opération : OMBRE-ET-VERSIONS-3

OBJECTIFS :

  • Lire les traces du passé.
  • Revenir en arrière sans laisser d'empreintes.
  • Comprendre où pointe le canon.

1. git log – CONSULTER LES ARCHIVES
L’histoire est écrite. Pour la lire :

git log

Une liste descendante. Chaque commit : une empreinte (hash), un auteur, une date, un message.
Trop brut ? Ajoutez des options.

git log --oneline --graph --all

Maintenant c’est une carte. Une vue d’ensemble des branches, des fusions, des chemins pris et abandonnés.
--oneline : juste l'essentiel.
--graph : les lignes de la chronologie.
--all : tout montrer. Même ce qu'on voudrait oublier.


2. git diff – VOIR LES CHANGEMENTS
Entre deux points dans le temps, il y a ce qui a bougé.
Pour voir les différences entre votre working tree et l’index :

git diff

Entre l’index et le dernier commit :

git diff --staged

Entre deux commits :

git diff abc123 def456

C’est un rapport de modifications. Lignes ajoutées (+), supprimées (-).
La vérité, en vert et rouge.


3. git show – EXAMINER UNE CIBLE
Vous voulez tout savoir sur un commit précis ?

git show abc123

Il vous sort le message, l’auteur, la date, et le diff exact de ce qui a changé dans ce commit.
C’est l’autopsie d’un instant passé.


4. git checkout – SE DÉPLACER DANS LE TEMPS
Deux usages.

Pour un fichier :

git checkout abc123 -- fichier.txt

Vous récupérez la version de fichier.txt telle qu'elle était au commit abc123.
Le présent est écrasé. Le passé ressurgit.

Pour un commit (mode détaché HEAD) :

git checkout abc123

Vous vous déplacez à ce point de l’histoire.
Le working tree change. Vous voyez les fichiers tels qu'ils étaient à ce moment-là.
C’est une visite. Pas un déménagement.
Pour revenir : git checkout main (ou master, ou le nom de votre branche).


5. HEAD – LA CIBLE ACTUELLE
HEAD, c'est là où vous êtes.
Un pointeur. Une référence.
En temps normal, HEAD pointe sur une branche (ex: main).
Quand vous checkout un commit directement, HEAD pointe sur le commit. "Détaché".
Vous êtes en observation. Pas en action.
Pour savoir où vous êtes :

git log --oneline -1

Ou regardez le prompt, s'il est configuré pour le montrer.


TRAVAUX PRATIQUES – SCÉNARIO : RETOUR VERS LE PASSÉ
Opération "Chronos"

  1. Dans votre dépôt existant, créez un fichier plan.md. Ajoutez-y trois étapes :

    1. Infiltration  
    2. Collecte  
    3. Exfiltration  
    

    Commitez : git add . puis git commit -m "Plan initial en trois étapes".

  2. Modifiez plan.md. Ajoutez une quatrième étape :

    4. Nettoyage  
    

    Commitez : git commit -am "Ajout de l'étape de nettoyage".

  3. Utilisez git log --oneline pour voir les deux commits. Notez leurs hash (les 7 premiers caractères suffisent).

  4. Comparez :

    git diff HEAD~1 HEAD
    

    Vous voyez juste l'ajout de "Nettoyage".

  5. Remontez dans le temps :

    git checkout HEAD~1
    

    Vérifiez plan.md. L'étape 4 a disparu. Vous êtes dans le passé.

  6. Revenez au présent :

    git checkout main
    
  7. Maintenant, récupérez uniquement l'ancienne version du fichier, sans bouger :

    git checkout HEAD~1 -- plan.md
    

    Le fichier est revenu à l'état précédent, mais vous êtes toujours sur main.
    Commitez cette restauration si besoin.


FIN DU MODULE 3.
Vous savez maintenant lire l’historique, comparer les époques, et vous déplacer sans faire de vagues.
La prochaine fois, on parlera de branches. De chemins parallèles. D'identités multiples.

Rapport clos.