Git et GitHub
Git enregistre l'histoire du projet, GitHub l'héberge. Un dépôt privé protège votre travail — à condition de ne jamais y déposer de secret.
Git, c'est la mémoire du projet
Un agent qui modifie dix fichiers en dix minutes, c'est puissant — et vertigineux : comment revenir en arrière si le résultat ne plaît pas ? Git répond à cette question. Il enregistre des points de retour nommés, que l'on peut relire, comparer et restaurer. GitHub, lui, met ces points de retour à l'abri : le travail existe ailleurs que sur votre machine.
- Sans Git, pas d'annulation fine :
/undodans OpenCode s'appuie sur Git. C'est le filet de sécurité du pilotage par IA. - Sans Git, pas d'histoire : on ne sait plus ce qui a été fait, quand, ni pourquoi. Le projet devient un fichier inconnu qu'on n'ose plus toucher.
- Sans GitHub, pas de sauvegarde : un disque qui rend l'âme, et tout disparaît — y compris la trace des prompts.
Git n'enregistre que ce que vous lui demandez. Un fichier modifié et jamais commité n'existe pas dans l'historique. « J'ai sauvegardé » veut dire « j'ai committé ET poussé ».
Le vocabulaire, en images
Dépôt (repository)
Le dossier surveillé par Git, avec tout son historique. Localement, c'est le dossier du projet plus un dossier caché .git.
Commit
Un point de retour daté, avec un message et un auteur. On peut revenir à n'importe quelle photo, comparer deux photos, comprendre ce qui a changé.
GitHub
Un site qui héberge des dépôts Git. Le projet peut y être privé (personne d'autre ne le voit) ou public.
Push
Transférer ses commits locaux vers GitHub. Tant qu'on n'a pas poussé, le travail n'existe que sur sa machine.
Pull
Faire venir sur sa machine les commits publiés sur GitHub. Utile quand on travaille à plusieurs ou sur deux postes.
Clone
Copier un dépôt existant (avec son historique) depuis GitHub. C'est ainsi qu'un professeur peut relire le projet d'un élève.
Branche
Une ligne de développement indépendante. Un projet d'élève vit très bien sur une seule branche : main.
Origine (origin)
Le nom donné au dépôt distant auquel on pousse. Par convention : origin. On le relie une fois avec git remote add.
Les commandes essentielles
| Commande | Ce qu'elle fait | Quand l'utiliser |
|---|---|---|
git init | Créer le dépôt dans le dossier courant (une seule fois, au début). | Avant la première ligne de code — pour que /undo fonctionne. |
git status | Afficher l'état : fichiers modifiés, préparés, non suivis. | Tout le temps. C'est la commande qu'on tape quand on est perdu. |
git diff | Montrer exactement ce qui a changé depuis le dernier commit. | Avant de committer, pour relire ce qu'on envoie. |
git add <fichier> | Préparer un fichier (ou un dossier) pour le prochain commit. | Après avoir vérifié son contenu. git add -A prépare tout. |
git commit -m "message" | Enregistrer un point de retour avec un message qui explique le changement. | Dès qu'une étape fonctionne — pas à la fin du projet. |
git log --oneline | Relire l'historique : une ligne par commit. | Pour retrouver un état ou comprendre d'où l'on vient. |
git restore <fichier> | Annuler les modifications en cours d'un fichier (retour au dernier commit). | Quand une intuition ne mène nulle part. |
git remote add origin <url> | Relier le dépôt local à son homologue GitHub (une seule fois). | Juste après la création du dépôt GitHub. |
git push | Envoyer les commits locaux sur GitHub. | À la fin d'une séance de travail, et avant d'aller dormir. |
git pull | Récupérer les commits présents sur GitHub mais pas chez vous. | En début de séance, quand on a travaillé ailleurs. |
git clone <url> | Copier un dépôt GitHub complet (historique compris) sur la machine. | Pour relire le projet, ou changer d'ordinateur. |
Onze commandes suffisent pour tout le projet. Les autres existent, mais ne les apprenez pas « au cas où » : elles viendront quand vous en aurez besoin.
La première fois, pas à pas
- Installer Git et se présenter. Le nom et l'adresse apparaissent dans chaque commit : ce sont eux qui rendent l'historique lisible.
git --version git config --global user.name "Prénom Nom" git config --global user.email "adresse@exemple.fr" - Créer le dépôt GitHub — privé. Sur github.com : New repository, un nom court (
mon-projet), visibilité Private. Ne cochez rien d'autre : ni README, ni .gitignore, ni licence. Ces cases créent un historique que votre dossier local ne connaît pas, et le premierpushsera refusé. - Initialiser le dépôt local dans le bon dossier.
cd mon-projet git init git status # doit afficher le dossier du projet - Créer le .gitignore AVANT le premier commit.
Vérification indispensable :.env .env.* !.env.example node_modules/ dist/git check-ignore .envdoit afficher.env. Sinon, ne committez pas encore. - Enregistrer le premier point de retour.
git add -A git status # relire la liste des fichiers préparés git commit -m "Initialise le projet : page d'accueil et .gitignore" - Relier au dépôt GitHub et pousser. Deux méthodes courantes :
GitHub n'accepte plus le mot de passe du compte en ligne de commande : il faut une clé SSH ou un jeton. Un# Méthode recommandée : GitHub CLI (installe aussi l'authentification) gh auth login git remote add origin git@github.com:compte/mon-projet.git git push -u origin main # Méthode classique : clé SSH créée à la main, ajoutée à GitHub ssh-keygen -t ed25519 -C "adresse@exemple.fr"pushrefusé n'est pas une panne, c'est un problème d'identité. - Vérifier en ligne. Rechargez la page GitHub : les fichiers et le message du commit doivent apparaître. Le travail est maintenant à l'abri.
Pour savoir si vous êtes prêt : « Où est mon dépôt ? » (le dossier), « Où est mon GitHub ? » (l'adresse), « Comment je reviens en arrière ? » (git log puis git restore, ou /undo). Trois réponses claires, et le reste suivra.
Le cycle de travail
Une fois les bases posées, le travail tourne toujours selon la même ronde :
- Modifier. On demande une petite évolution à l'agent (une intention, pas trois).
- Tester. On regarde le résultat dans le navigateur. Si c'est cassé : /undo ou correction ciblée.
- Relire. git status puis git diff : quels fichiers ont changé, et est-ce bien ce qu'on voulait ?
- Committer. git add puis git commit -m "verbe + objet" : un point de retour bien nommé.
- Pousser. git push : le travail quitte la machine et devient récupérable.
Un commit toutes les vingt minutes vaut mieux qu'un seul commit en fin de journée. Chaque commit est un point de retour : plus il y en a, plus la machine à remonter le temps est précise.
Les messages de commit
Un message de commit s'adresse à la personne qui lira l'historique — c'est-à-dire vous, dans trois semaines. La formule : verbe à l'impératif + objet du changement.
À évitermaj
À préférerAjoute la section « horaires » avec un tableau à deux colonnes
Dans six mois, « maj » ne dira rien à personne — pas même à vous.
À évitertest
À préférerCorrige le débordement du titre sur téléphone
Un message décrit le changement, pas l'humeur du moment.
À éviterça marche pas mais j'ai essayé des trucs
À préférerRestaure l'état qui fonctionnait avant la modification du thème
Même un retour en arrière est une décision qu'il faut savoir relire.
À évitermodifs de la journée
À préférerInitialise le projet Astro, le .gitignore et le README
Un commit = une idée. La formule : verbe à l'impératif + objet + raison si utile.
Ce qui ne va jamais dans un dépôt
| Jamais | Pourquoi |
|---|---|
| .env et tout fichier de clés | Un secret dans un dépôt est un secret perdu (voir Sécurité). |
| Les codes d'accès des élèves | Même anonymes, ils ouvrent l'accès au dépôt de prompts. |
| Les données personnelles | Noms, téléphones, adresses, photos : jamais dans un dépôt ni dans un prompt. |
| node_modules/ et dist/ | Reconstructibles depuis le projet : ils alourdissent le dépôt pour rien. |
| Les fichiers énormes (vidéos, images non optimisées) | Git garde tout : un dépôt lourd reste lourd, pour toujours. |
La checklist avant de pousser
Six pièges à connaître
Committer avant d'avoir écrit le .gitignore
Le .env part dans le premier commit : il est désormais dans l'historique. La clé doit être tournée (procédure en cas de fuite).
git add -A sans regarder git status
On envoie aussi les fichiers de brouillon, les captures, parfois une sauvegarde de .env. Regardez toujours la liste avant de valider.
Travailler hors du dépôt
« Mes commits ne partent pas » : le plus souvent, le terminal n'est pas dans le bon dossier. git status affiche alors une erreur de dépôt — c'est le signal.
Croire que Git sauvegarde tout seul
Git enregistre seulement ce qu'on lui demande : un fichier modifié et jamais committé n'existe pas dans l'historique.
Pousser un dépôt privé… puis le rendre public par erreur
La publication d'un dépôt est un clic : relisez la checklist avant chaque changement de visibilité.
Push refusé pour authentification
GitHub n'accepte plus le mot de passe du compte en ligne de commande : il faut une clé SSH ou un jeton à portée limitée. Ce n'est pas une panne.
Pour aller plus loin
Sécurité
Le piège du secret dans l'historique et la procédure en cas de fuite.
Suite logiqueCloudflare Pages
Relier le dépôt à une adresse publique.
Espace de travailOpenCode
/undo, /redo : les points de retour dans la conversation.
SourceLe livre Git (en français)
La référence progressive, chapitre après chapitre.