Garder une trace

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 : /undo dans 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.
Un commit n'est pas une sauvegarde automatique

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

L'album photo du projet

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.

Une photo de l'état du projet

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é.

Le cloud de l'album

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.

Envoyer les nouvelles photos

Push

Transférer ses commits locaux vers GitHub. Tant qu'on n'a pas poussé, le travail n'existe que sur sa machine.

Récupérer les photos des autres

Pull

Faire venir sur sa machine les commits publiés sur GitHub. Utile quand on travaille à plusieurs ou sur deux postes.

Télécharger tout l'album

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.

Une pellicule parallèle

Branche

Une ligne de développement indépendante. Un projet d'élève vit très bien sur une seule branche : main.

L'adresse de l'album en ligne

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

CommandeCe qu'elle faitQuand l'utiliser
git initCré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 statusAfficher 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 diffMontrer 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 --onelineRelire 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 pushEnvoyer les commits locaux sur GitHub.À la fin d'une séance de travail, et avant d'aller dormir.
git pullRé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

  1. 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"
  2. 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 premier push sera refusé.
  3. Initialiser le dépôt local dans le bon dossier.
    cd mon-projet
    git init
    git status          # doit afficher le dossier du projet
  4. Créer le .gitignore AVANT le premier commit.
    .env
    .env.*
    !.env.example
    node_modules/
    dist/
    Vérification indispensable : git check-ignore .env doit afficher .env. Sinon, ne committez pas encore.
  5. 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"
  6. Relier au dépôt GitHub et pousser. Deux méthodes courantes :
    # 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"
    GitHub n'accepte plus le mot de passe du compte en ligne de commande : il faut une clé SSH ou un jeton. Un push refusé n'est pas une panne, c'est un problème d'identité.
  7. Vérifier en ligne. Rechargez la page GitHub : les fichiers et le message du commit doivent apparaître. Le travail est maintenant à l'abri.
Le test des trois questions

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 :

ModifierTesterRelireCommitterPousser
  1. Modifier. On demande une petite évolution à l'agent (une intention, pas trois).
  2. Tester. On regarde le résultat dans le navigateur. Si c'est cassé : /undo ou correction ciblée.
  3. Relire. git status puis git diff : quels fichiers ont changé, et est-ce bien ce qu'on voulait ?
  4. Committer. git add puis git commit -m "verbe + objet" : un point de retour bien nommé.
  5. Pousser. git push : le travail quitte la machine et devient récupérable.
Committez petit, committez souvent

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

JamaisPourquoi
.env et tout fichier de clésUn secret dans un dépôt est un secret perdu (voir Sécurité).
Les codes d'accès des élèvesMême anonymes, ils ouvrent l'accès au dépôt de prompts.
Les données personnellesNoms, 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