Qui n’a jamais eu un dossier rempli de rapport_v2.docx, rapport_final.docx, rapport_final_VRAI.docx ? Git résout ce problème : c’est un système de gestion de versions qui enregistre l’historique complet d’un projet. Vous pouvez revenir en arrière, comprendre qui a changé quoi et pourquoi, et travailler à plusieurs sans écraser le travail des autres. Git est aujourd’hui l’outil standard, du site vitrine aux projets de data science.
Configurer Git (une seule fois)
git --version # vérifie l'installation
git config --global user.name "Léa Martin"
git config --global user.email "lea@example.com"
git config --global init.defaultBranch main # nom de la branche initiale
Le nom et l’e-mail sont inscrits dans chaque commit : ils identifient l’auteur.
Créer un dépôt
mkdir mon-projet && cd mon-projet
git init # crée le dépôt : un dossier caché .git qui contient tout l'historique
git status # la commande à taper sans modération
Ne supprimez jamais le dossier .git : c’est lui qui contient l’historique.
Les trois zones
C’est la notion centrale de Git :
- le répertoire de travail : vos fichiers tels que vous les modifiez ;
- la zone de préparation (staging area ou index) : ce que vous avez choisi d’inclure dans le prochain enregistrement ;
- l’historique : la suite des commits enregistrés.
fichiers modifiés --git add--> zone de préparation --git commit--> historique
Un commit est un instantané du projet à un moment donné, accompagné d’un message, d’un auteur, d’une date et d’un identifiant unique (un hash comme a1b2c3d).
Le cycle de base
echo "# Mon projet" > README.md
git status # README.md apparaît en « Untracked files » (non suivi)
git add README.md # on le place dans la zone de préparation
git status # il apparaît en « Changes to be committed »
git commit -m "Ajoute le README" # on enregistre l'instantané
Puis, à chaque évolution :
# ... vous modifiez index.html et style.css ...
git status # fichiers « modified »
git add index.html style.css # ou git add . pour tout le dossier courant
git commit -m "Ajoute la page d'accueil et sa mise en forme"
Pourquoi une étape intermédiaire ? Parce qu’elle permet de choisir : si vous avez corrigé un bug et commencé une nouvelle fonctionnalité, vous pouvez les enregistrer dans deux commits distincts. git add -p permet même de sélectionner des morceaux d’un fichier.
De bons commits
- Petits et cohérents : un commit = une modification logique.
- Bien nommés : un message court à l’impératif qui dit ce que fait le commit (« Corrige le calcul de la TVA »), pas « modifs » ou « wip ».
- Fréquents : committer souvent, c’est multiplier les points de retour possibles.
Prenez le réflexe git status avant chaque add et chaque commit : Git vous dit toujours où vous en êtes et suggère souvent la commande suivante.
Exercices
Les solutions et les tests restent sur le serveur. Dans l'espace étudiant, ton code est exécuté et corrigé, et le tuteur donne des indices avant la solution.
Configurer Git et créer un dépôt
Configurez votre nom et votre e-mail, puis créez un dossier
atelier-git, initialisez-y un dépôt et vérifiez son état.- git config --global user.name affiche votre nom
- git config --global user.email affiche votre e-mail
- Le dossier atelier-git contient un sous-dossier caché .git (visible avec ls -a)
- git status indique « No commits yet »
Deux commits distincts
Dans
atelier-git, créezREADME.mdetnotes.txt. Faites un premier commit contenant uniquement le README, puis un second contenant notes.txt.- Avant le premier commit, git status montre README.md dans « Changes to be committed » et notes.txt dans « Untracked files »
- git log --oneline affiche exactement 2 commits
- git show --stat HEAD~1 ne mentionne que README.md
- git status indique « nothing to commit, working tree clean »
Le rôle de git add
Vous avez modifié
app.py, puis lancégit commit -m "Corrige"sansgit add. Que se passe-t-il ?- Le commit contient app.py
- Git indique qu'il n'y a rien de préparé pour le commit
- Git supprime les modifications
Quiz de fin de leçon
Que fait git init ?
- Envoie le projet sur GitHub
- Crée un dépôt Git dans le dossier courant
- Enregistre un commit
Dans quel ordre enregistre-t-on une modification ?
- git commit puis git add
- git add puis git commit
- git push puis git commit
Quel message de commit est le meilleur ?
- modifs
- Corrige le calcul du total du panier
- commit du 10/11
La suite du cours
- Explorer l'historique et annuler15 min
- Branches, fusions et conflits20 min
- GitHub : travailler avec un dépôt distant20 min
- Collaborer : .gitignore, pull requests et revue20 min