1.2 : Git ≠ GitHub ≠ Forgejo : lever le malentendu tout de suite

Sommaire

« Je ne vais pas mettre les scripts de la boîte sur Internet »

C’est probablement la phrase qui a fait perdre le plus de temps aux administrateurs système ces quinze dernières années. Elle est prononcée en réunion, elle clôt le débat, et elle repose sur une confusion complète entre trois choses qui n’ont rien à voir.

Cette confusion a une cause simple : pour l’immense majorité des gens, la découverte de Git s’est faite par GitHub. On leur a dit « crée un compte GitHub », ils ont tapé des commandes git sans savoir ce qu’elles faisaient, et les deux mots se sont soudés dans leur tête. Le fait que « Git » soit littéralement contenu dans « GitHub » a achevé le travail.

Alors mettons les choses au clair, parce que tant que ce n’est pas fait, rien de ce qui suit dans cette formation ne peut fonctionner.

Trois couches, trois rôles

Il y a en réalité trois niveaux distincts, et il est parfaitement possible de n’en utiliser qu’un seul.

┌───────────────────────────────────────────────────────────────┐
│  NIVEAU 3 — LA FORGE                                          │
│  Forgejo, GitLab, GitHub, Gitea…                              │
│  Interface web, comptes, droits, revue de code, CI/CD,        │
│  registre d'images, wiki, tickets, webhooks, API              │
├───────────────────────────────────────────────────────────────┤
│  NIVEAU 2 — LE DÉPÔT DISTANT                                  │
│  Une simple copie du dépôt, accessible par le réseau          │
│  Un serveur SSH, un partage, un autre poste… ou une forge     │
├───────────────────────────────────────────────────────────────┤
│  NIVEAU 1 — GIT                                               │
│  Un logiciel installé sur VOTRE poste                         │
│  Historique, commits, branches, comparaisons — en local       │
└───────────────────────────────────────────────────────────────┘

Niveau 1 — Git est un logiciel local

Git est un programme que vous installez sur votre machine, exactement comme vous installeriez curl, 7zip ou rsync. Il est libre, gratuit, et il fonctionne intégralement hors ligne.

Un peu de contexte, parce qu’il explique beaucoup de choses : Git a été créé en 2005 par Linus Torvalds pour gérer le développement du noyau Linux. Les contraintes du projet étaient très particulières : des milliers de contributeurs répartis dans le monde entier, aucun serveur central de confiance, et l’obligation absolue de pouvoir vérifier qu’un historique n’avait pas été altéré. C’est de là que viennent les deux caractéristiques que vous avez vues en leçon 1.1 : le fonctionnement distribué et l’historique vérifiable par empreinte.