← Git & GitHub : du premier commit au travail en équipe

Ton premier dépôt Git

≈ 15 minutes · Jalon M1

Le gain du jour : à la fin de cette leçon, tu auras créé ton premier dépôt Git, enregistré ta première photo de ton code, et — surtout — tu comprendras vivent tes fichiers quand tu tapes une commande Git.

Pourquoi Git existe (30 secondes)

Quand une équipe travaille sur le même code, il faut répondre à trois questions en permanence : qui a changé quoi, quand, et pourquoi ? Git est un gestionnaire de versions : il enregistre l’histoire complète de ton projet sous forme de photos successives (appelées commits). GitHub, qu’on verra plus tard, est simplement un endroit sur Internet où ton équipe partage cette histoire. Aujourd’hui, on reste 100 % sur ta machine.

Le modèle mental : les 3 zones

C’est LA chose à retenir de cette leçon. Presque toute la confusion des débutants vient de là. Dans un projet Git, chaque fichier circule entre trois zones :

ZoneC’est quoi ?Analogie photo
1. Working directoryTes fichiers, tels que tu les vois et les édites.La scène : tout bouge librement.
2. Staging areaLa liste de ce qui fera partie de la prochaine photo.Ceux qui posent devant l’objectif.
3. RepositoryL’album : toutes les photos (commits) déjà prises, permanentes.L’album photo, page après page.

Et seulement deux commandes font passer d’une zone à l’autre :

working directory  ──  git add  ──▶  staging area  ──  git commit  ──▶  repository
Pourquoi une staging area ?

Elle te permet de choisir précisément ce qui entre dans chaque photo. En équipe, c’est essentiel : un commit = une modification cohérente et racontable, pas un fourre-tout.

Entraîne-toi ici — terminal simulé

Avant de passer au vrai terminal, fais l’exercice dans ce simulateur : il accepte les vraies commandes du cours et valide ton résultat automatiquement. Erreur sans conséquence, bouton reset à volonté.

🖥️ Terminal d'entraînement Objectif : ton premier commit, ici même.
(main) $

À toi de jouer

Ouvre un terminal et suis les étapes. Après chaque étape, lance git status — c’est ta boussole, elle te dit dans quelle zone est chaque fichier.

  1. Dis à Git qui tu es (une seule fois par machine, ça signera tes photos) :

    git config --global user.name "Ton Nom"
    git config --global user.email "ton.email@exemple.com"
  2. Crée un dossier d’entraînement et transforme-le en dépôt Git :

    mkdir ~/Workspaces/pythons/git-entrainement
    cd ~/Workspaces/pythons/git-entrainement
    git init

    git init crée le repository (un dossier caché .git/). L’album existe, mais il est vide.

  3. Crée un fichier, puis regarde ce que Git en dit :

    echo "print('bonjour git')" > analyse.py
    git status

    Git répond « untracked files: analyse.py » — le fichier est dans le working directory, Git le voit mais ne le suit pas encore.

  4. Fais-le poser devant l’objectif :

    git add analyse.py
    git status

    Maintenant : « changes to be committed » — il est dans la staging area.

  5. Prends la photo :

    git commit -m "Ajoute le script d'analyse initial"
    git status

    « nothing to commit, working tree clean » : la photo est dans l’album, tout est enregistré.

  6. Admire ton album :

    git log

    Tu vois ton commit : son identifiant, ton nom, la date, ton message. Bravo — c’est ta première entrée dans l’histoire du projet.

  7. Boucle d’entraînement (à faire 2–3 fois pour ancrer le cycle) : modifie analyse.py, puis git statusgit add analyse.pygit statusgit commit -m "un message clair"git log. À chaque git status, dis à voix haute dans quelle zone est le fichier.

Vérifie ta compréhension

1. Que fait exactement git add analyse.py ?

2. Après git commit, où est enregistrée ta « photo » ?

3. Tu es perdu, tu ne sais plus où en sont tes fichiers. Quelle commande lances-tu en premier ?

Pour aller plus loin

📖 Source principale : lis les deux courtes sections « Rudiments de Git » et « Démarrer un dépôt Git » du livre officiel Pro Git (gratuit, en français). C’est la référence la plus fiable qui existe sur Git.

🗂 Fiche de référence associée : Commandes Git — antisèche.