Formation Coder avec l’IA

Git dès la première minute : historiser chaque pas

Git est votre filet de sécurité avec l’IA : un petit commit à chaque pas, une branche par fonctionnalité, et un retour arrière en une commande.

Module 0 · Démarrer vite et sereinement

Leçon gratuite

Objectif du chapitre

Votre projet vit sur GitLab, vous savez faire un commit propre, créer une branche et annuler une modification de l’IA en 10 secondes. Durée : 45 min · 85 % pratique.

Prérequis : installer ses outils (chapitre 01).

Pourquoi Git avant tout le reste

Avec l’IA, vous allez modifier beaucoup de code très vite. Sans historique, une mauvaise proposition peut effacer une heure de travail. Avec Git, chaque étape validée est sauvegardée : vous expérimentez sans peur.

Étape 1 : créer le dépôt

  1. Créez un compte sur gitlab.com et un projet vide nommé montour.
  2. Ajoutez votre clé SSH dans les préférences GitLab.
  3. Clonez le projet.
ssh-keygen -t ed25519 -C "vous@exemple.fr"
cat ~/.ssh/id_ed25519.pub   # à coller dans GitLab > Préférences > Clés SSH
git clone git@gitlab.com:votre-compte/montour.git
cd montour

Étape 2 : le premier commit

echo "# MonTour" > README.md
cp ../NOTES.md .            # votre fiche projet du chapitre 1
printf ".env*\nnode_modules/\n.next/\n" > .gitignore
git add README.md NOTES.md .gitignore
git commit -m "chore: initialise le projet MonTour"
git push origin main

Étape 3 : la routine à chaque modification de l’IA

git status            # quels fichiers ont changé ?
git diff              # quoi exactement ? Lisez tout.
git add -p            # validez morceau par morceau
git commit -m "feat: ajoute le calcul de position"

Messages courts, au présent, préfixés : feat (fonctionnalité), fix (correction), test, chore (outillage), sec (sécurité).

Étape 4 : une branche par fonctionnalité

git switch -c feat/page-publique
# ... travail, commits ...
git push -u origin feat/page-publique
# puis ouvrez une merge request dans GitLab

Étape 5 : annuler quand l’IA casse tout

git restore .                 # oublie les modifications non commitées
git restore --staged fichier  # retire un fichier de l'index
git revert <sha>              # annule un commit déjà poussé, proprement
git log --oneline -10         # retrouver le bon point

Pratique : provoquez une erreur

Demandez à votre assistant de « réécrire entièrement le README en anglais ». Lisez le diff, refusez-le avec git restore README.md, puis vérifiez avec git status que tout est revenu.

Réflexe sécurité

Le fichier .gitignore exclut .env* dès le premier commit. Un secret poussé une seule fois reste dans l’historique : il faut alors le révoquer, pas seulement le supprimer.

Étape 6 : un tag à la fin de chaque chapitre

Chaque prompt reproductible de la formation part d’un état précis du dépôt. Pour le retrouver, posez un tag à la fin de chaque chapitre : ch02, ch03… Le prompt du chapitre 15 commence ainsi par « Point de départ : tag ch14 ».

git tag ch02
git push origin ch02
# revenir à cet état dans un dossier à part, sans rien casser
git worktree add ../montour-ch02 ch02

Le prompt reproductible

Même point de départ, même contexte, même résultat : partez du tag indiqué et collez ce prompt tel quel.

Point de départ : tag ch01 (dépôt avec README.md, NOTES.md, .gitignore).
Tâche : voici la sortie de git diff --staged : <colle-la>.
Propose UN message de commit au format conventionnel
(feat|fix|test|chore|sec|docs|refactor): description au présent,
72 caractères maximum, en français.
Si le diff mélange plusieurs sujets, dis-le et propose le découpage
avec git add -p au lieu d'un message.

Qualité du code : ce que vous vérifiez

  • Petits commits : un sujet par commit, c’est ce qui rend un git revert sans risque.
  • Messages conventionnels : l’historique devient lisible par vous, par l’équipe et par un agent (voir le relecteur).
  • Défensif : .gitignore avant le premier commit, branche main protégée, jamais de force-push sur une branche partagée.
  • Sans IA : git status, git diff, git add -p et git restore doivent devenir des réflexes.

Outillage IA de ce chapitre

Connecteurs MCP : GitLab, plus tard, pour lire les merge requests et les pipelines depuis l’assistant (chapitre 33). Aucun agent ne pousse jamais à votre place.

Vérifier

  • ☐ Le dépôt existe sur GitLab avec 1 commit sur main.
  • ☐ Je sais lire un git diff avant de valider.
  • ☐ J’ai annulé une modification de l’IA avec git restore.
  • ☐ J’ai poussé une branche et ouvert une merge request.

Défi

Configurez la protection de la branche main dans GitLab (Paramètres > Dépôt) : plus aucun push direct, tout passe par une merge request.

Pour aller plus loin

Suivez votre progression. Créez un compte gratuit pour cocher vos leçons et reprendre là où vous en étiez.

Créer un compte gratuit