Séquence 01 · Pourquoi Git ?

Quelle est la bonne version ?

Avant de parler d’outil, parlons de vous. Quatre situations que vous avez déjà vécues — et une idée simple qui les résout toutes les quatre.

Situation 1 — La bonne version

Mini-film 01 · Quatre « finales », aucune référence.

Vous rendez un rapport. Trois semaines plus tard, le commanditaire demande une modification. Vous ouvrez le dossier de l’étude — et vous retrouvez rapport_final, rapport_final2, rapport_final_corrige, rapport_final_vraiment_final

Comment conserver l’histoire d’un projet sans multiplier les fichiers ?

Transcription du mini-film 01

La transcription sera ajoutée avec la vidéo. L’essentiel de la situation est raconté dans le texte ci-contre : plusieurs versions d’un même rapport coexistent, et personne ne sait laquelle fait référence.

Ce que raconte le film, chacun l’a vécu :

rapport_final.docx rapport_final2.docx rapport_final_corrige.docx rapport_final_vraiment_final.docx
rapport.docx

Laquelle a été envoyée ? final2 est-il plus récent que final_corrige ? Personne ne sait. Et le pire : vous non plus, alors que c’est votre étude.

Regardez le dossier d’une de vos études en cours. Combien de fichiers portent un nom du type _v2, _final, _corrige, _OLD ? Qu’est-ce qui vous ferait peur si vous deviez en supprimer trois ?

Situation 2 — « Vendredi, ça fonctionnait »

Mini-film 02 · Trois « petites retouches » plus tard…

Vendredi soir, votre programme analyse.R tournait parfaitement et produisait les bons chiffres. Lundi matin, après « juste deux ou trois petites retouches », plus rien ne marche.

Je sais qu’un état correct de mon projet a existé. Comment le retrouver précisément ?

Transcription du mini-film 02

La transcription sera ajoutée avec la vidéo. La situation : une analyse qui fonctionnait vendredi ne fonctionne plus après plusieurs modifications, et impossible de dire lesquelles sont en cause.

Sans outil, c’est presque impossible : votre mémoire est floue, le fichier a été écrasé, et la corbeille ne contient que la version d’il y a dix minutes. L’idée qui change tout : un outil qui conserve les états successifs du projet — l’état de vendredi existe encore quelque part, intact.

Sans mémoire des versions

  • « Je crois que j’ai touché au filtre… ou au seuil ? »
  • On recopie une vieille sauvegarde en croisant les doigts.
  • Une demi-journée perdue à comparer des fichiers à l’œil nu.

Avec une mémoire des versions

  • La liste exacte des lignes modifiées depuis vendredi.
  • L’état complet de vendredi, récupérable en une commande.
  • Dix minutes, et la certitude de n’avoir rien perdu.

Situation 3 — « Qui a changé ça ? »

Mini-film 03 · Un taux a changé. Personne ne sait pourquoi.

Le tableau 4 du rapport affiche un taux de 12,4 % au lieu des 11,9 % validés le mois dernier. Trois personnes sont intervenues sur l’étude.

Qui a modifié le calcul, quand — et surtout pourquoi ?

Transcription du mini-film 03

La transcription sera ajoutée avec la vidéo. La situation : un résultat statistique a changé, et l’équipe cherche qui a fait la modification, quand, et pour quelle raison.

Écoutez l’équipe :

Marie

« Moi je n’ai touché qu’au graphique de la page 6, je suis formelle. »

Franck

« J’ai peut-être relancé le traitement… mais je n’ai rien modifié. Enfin, je crois. »

Peut-être que ce 12,4 % est une correction volontaire et parfaitement justifiée. Impossible à savoir — à moins qu’un outil garde la trace de chaque modification : son historique, son auteur, sa date, et le message qui explique le changement.

Situation 4 — Le voyage dans le temps

Mini-film 04 · « Juste avant, ça fonctionnait. Je voudrais simplement revenir à avant ma modification. »
Transcription du mini-film 04

La transcription sera ajoutée avec la vidéo. La situation : Marie vient de faire une modification et voudrait simplement revenir à l’état d’avant — le monde se rembobine symboliquement.

Git ne remonte pas le temps. Mais il permet de retrouver l’histoire de votre projet.

Git ne remonte pas le temps. Git conserve les états successifs de votre projet, comme un album photo daté et commenté. À tout moment vous pouvez rouvrir l’album, regarder une photo d’il y a trois semaines, et même récupérer un fichier tel qu’il était sur cette photo.

Chaque « photo » retient trois choses :

  1. L’état complet du projet à cet instant — tous les fichiers, pas un seul.
  2. Qui a pris la photo, et quand — automatiquement.
  3. Pourquoi — un petit message que vous écrivez vous-même.

Et cette histoire se consulte en une seule commande — un simple aperçu ici, nous la pratiquerons tranquillement en séquence 03 :

git log --oneline
8f31c2a Modifie le calcul de l'indicateur
51bd882 Version stable avant modification
a904ef1 Ajoute le graphique par sexe

Reprenons nos quatre situations avec cet album photo en main :

Situation Réponse de l’album
Quelle est la bonne version ? Un seul fichier, et la liste datée de toutes ses versions.
Vendredi ça fonctionnait On rouvre la photo de vendredi et on compare.
Qui a changé ça ? Chaque photo porte un nom, une date et une explication.
Voyage dans le temps Toutes les photos restent accessibles, pour toujours.

Git est cet album photo. On dit « donner une mémoire au projet » — et chaque photo s’appelle un commit.

Votre première carte de Git

Voici la carte mentale que nous allons enrichir toute la journée. Pour l’instant, elle est minuscule — et c’est très bien ainsi :

Votre travail analyse.R, rapport.qmd… vos fichiers, comme d'habitude.
« prendre une photo »
L'historique L'album des états successifs du projet : les commits.

Rien d’autre ne change dans votre façon de travailler : vous continuez d’éditer vos fichiers dans RStudio, VS Code ou votre éditeur habituel. Git observe le dossier, et photographie quand vous le décidez.

Pour aller plus loin — « système de gestion de versions distribué » ?

C’est la définition officielle de Git, et vous comprenez maintenant chacun de ses mots : gestion de versions = l’album photo ; système = l’outil qui le tient à jour ; distribué = chaque personne possède une copie complète de l’album sur son poste (nous verrons cela en séquence 06). Git a été créé en 2005 pour le développement du noyau Linux ; il est devenu l’outil standard bien au-delà de l’informatique — y compris à l’Insee et dans la statistique publique, pour les programmes R et Python comme pour les publications Quarto.

Dans votre pratique actuelle, que se passe-t-il quand vous enregistrez analyse.R dans votre éditeur ?

L'idée est là. Passons au geste : prendre notre première photo.

Séquence 02 — Premier commit