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
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 :
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 »
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 ? »
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
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 :
- L’état complet du projet à cet instant — tous les fichiers, pas un seul.
- Qui a pris la photo, et quand — automatiquement.
- 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 --oneline8f31c2a 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 :
« prendre une photo »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 ?
C'est exactement le problème : « Enregistrer » écrase. Git ajoute l'étage qui manque — enregistrer et garder la trace de chaque état antérieur.