Git raconté aux gens normaux : le classeur des versions
écrit le
Souviens-toi du drame du cahier unique. Tu écris ta rédaction, tu changes d’avis sur la fin, tu ratures, tu arraches la page, tu recommences… et au moment de rendre, tu te dis que la première fin était mieux. Trop tard : elle est dans la poubelle de la classe.
Des années plus tard, le drame a juste changé de costume. Sur ton ordinateur, il s’appelle rapport-final.docx, rapport-final-2.docx, rapport-final-2-VRAIMENT-final.docx. Même panique, mêmes questions : c’était laquelle, la bonne ? Qu’est-ce qui a changé entre les deux ? Et si je supprime, je perds quoi ?
Les développeurs ont réglé ce drame il y a vingt ans avec un outil au nom peu engageant : git. Et je vais te le raconter comme promis la semaine dernière : sans une seule ligne de code. Parce que tu n’as pas besoin de savoir te servir de git — tu as besoin de comprendre ce qu’il fait, car c’est là-dessus que ton agent et toi allez collaborer.
Le classeur qui n’oublie rien
Imagine un classeur posé à côté de ton cahier. À chaque fois que ta copie atteint une étape qui te plaît — l’intro est bonne, le plan tient debout — tu en ranges une photocopie dans le classeur, avec une petite étiquette datée : « intro terminée », « nouvelle conclusion, plus courte ».
C’est exactement ça, git. La photocopie étiquetée s’appelle un commit (prononce « commite »). Le classeur complet — toutes les versions, toutes les étiquettes, depuis la première ligne — s’appelle l’historique. Et le cartable qui contient ta copie ET son classeur s’appelle un dépôt (repository, ou « repo » pour les intimes).
La conséquence est énorme : plus rien n’est jamais perdu. Tu peux réessayer une autre fin sans peur, puisque l’ancienne dort dans le classeur. Le fichier VRAIMENT-final-2.docx disparaît de ta vie : il n’y a qu’une seule copie visible, et un classeur qui se souvient de tout derrière.
Comparer deux copies : le surligneur magique
Deuxième super-pouvoir du classeur : tu peux sortir deux photocopies, les poser côte à côte, et git te surligne uniquement ce qui a changé entre les deux. Trois mots modifiés dans un texte de dix pages ? Trois mots surlignés. Ce comparateur s’appelle le diff.
Repense à l’article sur la supervision : pour corriger la copie de ton agent sans tout relire, il te faut voir ce qu’il a touché. Le diff, c’est ça. Quand ton agent te dit « j’ai modifié le fichier », le diff te montre la copie avec les modifications surlignées — tu corriges en marge en trente secondes au lieu de relire dix pages. C’est l’outil de travail numéro un du correcteur.
Les branches : photocopier sa copie pour essayer une autre fin
Maintenant, le concept qui fait peur dans les livres et qui est en fait tout bête : les branches.
Ta rédaction est propre, mais tu as une idée de fin complètement différente. Risqué. Alors tu ne touches pas au cahier du propre : tu photocopies ta copie, et tu essaies l’autre fin sur la photocopie. Si c’est raté, tu jettes la photocopie — le propre n’a jamais été en danger. Si c’est mieux, tu recopies la nouvelle fin dans le propre.
C’est tout. Une branche, c’est une photocopie de travail. Le cahier du propre s’appelle en général la branche main (la « principale »). Et recopier les bonnes idées de la photocopie vers le propre s’appelle une fusion (merge).
Pourquoi ça te concerne ? Parce que c’est comme ça qu’un agent bien élevé travaille : il fait ses essais sur une photocopie, jamais directement sur ton cahier du propre. Tu regardes le diff, tu annotes, et seulement quand c’est bon, ça part dans le propre. Ton travail ne peut pas être abîmé par un brouillon raté.
Le casier de l’école : partager le classeur
Dernier morceau. Ton classeur est chez toi — mais ta copie doit voyager : vers tes camarades de groupe, vers ton agent, vers l’imprimerie du journal de l’école. Alors il existe un casier partagé, un endroit où tout le monde peut déposer et récupérer le classeur. Le plus connu de ces casiers s’appelle GitHub (« le hub des git » — littéralement le vestiaire à classeurs).
Deux gestes suffisent : déposer tes nouvelles pages dans le casier — push — et récupérer celles que les autres y ont mises — pull. Quand ce blog te disait dans les coulisses que chaque article part « dans le git » avant d’être imprimé sur le site, c’était ça : je range l’article dans le classeur (commit), je le dépose au casier (push), et l’imprimerie de l’école prend le relais.
À retenir : git est un classeur qui garde toutes les versions de ton travail. Un commit = une photocopie datée et étiquetée. Le diff = le surligneur qui montre ce qui a changé entre deux versions. Une branche = une photocopie pour essayer sans risque, fusionnée dans le propre si c’est bon. Push/pull = déposer et récupérer le classeur au casier partagé (GitHub). Rien n’est jamais perdu.
Pourquoi c’est LE filet de sécurité de la délégation
Récapitulons ce que ce classeur change quand tu travailles avec un agent. Tu peux voir exactement ce qu’il a fait (le diff), donc corriger en marge au lieu de relire des pages entières. Tu peux revenir en arrière à n’importe quelle version, donc le laisser essayer sans trembler — la pire bêtise du monde s’annule en sortant la photocopie d’avant. Et il peut travailler sur une photocopie pendant que ton propre reste intact.
Autrement dit : git transforme « j’espère qu’il ne va rien casser » en « il ne peut rien casser ». C’est la différence entre déléguer en croisant les doigts et déléguer sereinement. Tous les conseils de supervision de l’article précédent deviennent dix fois plus faciles avec ce filet en dessous.
À toi de jouer : tu utilises déjà un classeur sans le savoir
Pas besoin d’installer quoi que ce soit pour toucher l’idée du doigt. Ouvre un document Google Docs (ou Word en ligne) sur lequel tu as travaillé plusieurs jours, et cherche le menu « Historique des versions ». Regarde : toutes tes anciennes versions sont là, datées, avec les changements surlignés. Tu peux en rouvrir une vieille, comparer, restaurer.
Ça, c’est un classeur de versions — un git de poche, automatique et simplifié. Git fait la même chose, en plus précis : c’est toi (ou ton agent) qui choisis quand photocopier et quelle étiquette coller. Ensuite, la prochaine fois que ton agent modifie des fichiers pour toi, pose-lui LA question du correcteur outillé : « montre-moi ce que tu as changé avant que je valide ». Tu viens de demander un diff. Bienvenue au club.
La semaine prochaine, on passe un cap : jusqu’ici, tu regardais ton agent travailler. Et s’il travaillait pendant que tu dors ? Tu donnes le sujet le soir, la copie est rendue au matin — comme les devoirs à la maison, mais dans l’autre sens. Petit indice : l’article que tu viens de lire a exactement été écrit comme ça. On se retrouve lundi pour en parler.