Brouillon auto

Guide Git Vibe Coding avec Claude Code

Git et Claude Code : le guide complet pour maîtriser Git dans l’ère du Vibe Coding

Le développement logiciel vient de changer d’échelle. Pendant des années, écrire du code signifiait produire ligne après ligne. Aujourd’hui, une grande partie du code peut être générée en quelques secondes par des assistants d’intelligence artificielle.

Des outils comme Claude Code, Cursor, GitHub Copilot ou ChatGPT permettent de produire :

  • des fonctions complètes
  • des modules entiers
  • des scripts d’automatisation
  • parfois même l’architecture initiale d’un projet

Ce changement de rythme transforme profondément la manière de travailler.

Une étude menée par GitHub Research sur l’usage de Copilot montre que les développeurs terminent certaines tâches jusqu’à 55 % plus vite lorsqu’ils utilisent un assistant IA.
Source : The Impact of GitHub Copilot on Developer Productivity, GitHub Research.

Plus de vitesse signifie aussi plus de code produit, plus rapidement qu’auparavant.

Et c’est précisément là que les problèmes commencent.

Le vibe coding : programmer en décrivant l’intention

Le terme vibe coding est apparu récemment dans la communauté des développeurs. Il décrit une manière différente d’écrire du logiciel.

Au lieu d’implémenter chaque ligne, le développeur décrit l’objectif :

  • « crée une API REST pour gérer des utilisateurs »
  • « génère une fonction de validation email »
  • « refactorise ce module pour utiliser async/await »

L’IA propose ensuite une implémentation.

Le rôle du développeur change.

Développement classiqueVibe coding
écrire chaque lignedécrire le comportement attendu
implémenter les algorithmesvalider les propositions de l’IA
produire progressivementgénérer rapidement des blocs de code

Le développeur devient moins un “dactylographe du code” et davantage un architecte qui guide la génération.

Cette approche est particulièrement visible avec Claude Code, qui peut analyser un projet et proposer des modifications sur plusieurs fichiers en une seule interaction.

Le problème : générer du code est devenu trop facile

Produire du code n’a jamais été aussi simple.

Mais produire du code fiable reste une autre histoire.

Lorsqu’un assistant IA intervient dans un projet, plusieurs phénomènes apparaissent rapidement :

  • plusieurs fichiers peuvent être modifiés en même temps
  • certaines fonctions existantes peuvent être remplacées
  • du code peut être ajouté sans être cohérent avec l’architecture
  • des effets de bord apparaissent dans des modules inattendus

En pratique, une simple instruction peut entraîner des modifications comme celles-ci :

function validateEmail(email) {
return email.includes("@");
}

La fonction semble correcte. Mais plusieurs questions surgissent immédiatement :

  • cette fonction existait-elle déjà ailleurs dans le projet ?
  • modifie-t-elle un comportement existant ?
  • quels autres fichiers ont été modifiés en même temps ?

Quand l’IA peut modifier dix fichiers en quelques secondes, comprendre ce qui s’est réellement passé devient essentiel.

Sans outil de contrôle, le développement assisté par IA peut rapidement produire du code difficile à auditer et à maintenir.

Git devient le système de gouvernance du code généré par IA

C’est ici que Git devient indispensable.

Git ne se contente pas de stocker du code. Il enregistre l’évolution complète d’un projet.

Chaque modification peut être :

  • identifiée
  • comparée
  • documentée
  • annulée

Dans un environnement de Git pour développement assisté par IA, ces capacités deviennent critiques.

Git permet notamment de :

  • inspecter les changements générés par l’IA
  • comparer deux versions du projet
  • tester des expérimentations dans des branches isolées
  • revenir immédiatement à un état stable

Autrement dit, Git agit comme la mémoire et le système de contrôle du projet.

Git pour vibe coding : la ceinture de sécurité du développement assisté par IA

Avec le vibe coding, la vitesse de production augmente fortement. Mais plus la production est rapide, plus la traçabilité devient importante.

Git apporte trois garanties essentielles.

Premièrement, la transparence. Chaque modification peut être inspectée précisément.

Deuxièmement, la reproductibilité. Une version stable peut être retrouvée à tout moment.

Troisièmement, la sécurité. Les expérimentations générées par IA peuvent être isolées et annulées sans risque.

Dans un workflow moderne combinant Git et Claude Code, Git devient le point de contrôle qui permet de bénéficier de la puissance de l’IA sans perdre la maîtrise du projet.

Produire du code est devenu facile.

Comprendre ce qui change dans un projet reste une compétence essentielle.

Et c’est exactement le rôle que Git continue de jouer.

Git expliqué simplement : comprendre avant d’utiliser

Guide Git Vibe Coding avec Claude Code

Beaucoup de développeurs apprennent Git en mémorisant quelques commandes :

git add .
git commit
git push

Cela fonctionne… jusqu’au jour où un problème apparaît :

  • un conflit de merge incompréhensible
  • une branche cassée
  • un historique illisible
  • ou pire : une perte de travail

La cause est presque toujours la même : Git est utilisé sans comprendre son modèle.

Avant de manipuler les commandes, il faut saisir ce qu’est réellement Git et ce qu’il enregistre.

Git n’est pas GitHub !

La confusion est extrêmement fréquente.

Git et GitHub sont deux choses différentes.

OutilRôle
Gitlogiciel de gestion de versions
GitHub / GitLab / Bitbucketplateformes qui hébergent des dépôts Git

Git fonctionne parfaitement sans Internet.

Vous pouvez créer un dépôt Git, faire des commits et gérer des branches uniquement sur votre machine.

GitHub ou GitLab servent simplement à :

  • partager le code
  • collaborer
  • gérer les revues de code
  • centraliser un dépôt distant

Comprendre cette distinction évite beaucoup de confusion.

Git est un système de gestion de versions distribué

Git appartient à une catégorie d’outils appelée DVCS.

DVCS signifie :

  • Distributed Version Control System
  • En français : système de gestion de versions distribué.

Décomposons ces termes.

Gestion de versions

Git enregistre l’évolution d’un projet dans le temps.

Chaque modification devient une version identifiable.

Vous pouvez :

  • voir ce qui a changé
  • comparer deux versions
  • revenir à une version précédente

Distribué

Dans Git, chaque développeur possède une copie complète du projet.

Cela inclut :

  • tous les fichiers
  • tout l’historique
  • toutes les branches

Contrairement aux anciens systèmes centralisés, Git ne dépend pas d’un serveur unique.

Cette architecture rend le travail :

  • plus rapide
  • plus robuste
  • possible même hors connexion

Git a été conçu en 2005 par Linus Torvalds, le créateur de Linux, pour gérer le développement du noyau Linux.
Source : Git Documentation — git-scm.com.

Ce que Git enregistre réellement

Git ne stocke pas simplement des fichiers.

Il enregistre des instantanés complets du projet.

Chaque version du projet correspond à un snapshot.

Imaginez une série de photos prises au fil du temps :

Version 1 → Version 2 → Version 3 → Version 4

Chaque photo capture l’état exact du projet à un moment donné.

C’est ce que Git appelle un commit.

Git ne sauvegarde pas les différences, mais des états

Un point souvent mal compris : Git ne stocke pas seulement les différences entre fichiers.

Il stocke l’état du projet à chaque commit.

🚀 Devenez un expert en Data Marketing avec nos formations !

Maîtrisez les outils essentiels pour analyser, automatiser et visualiser vos données comme un pro. De BigQuery SQL à Google Apps Script, de n8n à Airtable, en passant par Google Sheets et Looker Studio, nos formations couvrent tous les niveaux pour vous permettre d’optimiser vos flux de données, structurer vos bases SQL, automatiser vos tâches et créer des dashboards percutants. Que vous soyez débutant ou avancé, chaque formation est conçue pour une mise en pratique immédiate et un impact direct sur vos projets. Ne subissez plus vos données, prenez le contrôle dès aujourd’hui ! 📊🔥

Cela permet plusieurs avantages :

  • revenir instantanément à une version
  • comparer deux états du projet
  • reconstruire l’historique complet

Cette approche rend Git très rapide pour naviguer dans les versions.

Pourquoi ce modèle est important

Ce modèle permet trois choses fondamentales dans un projet logiciel.

D’abord, la traçabilité.
Chaque modification possède un auteur et une date.

Ensuite, la reproductibilité.
On peut reconstruire exactement l’état du projet à n’importe quel moment.

Enfin, l’expérimentation.
Il devient possible de tester des idées sans risquer de casser le projet principal.

Dans un environnement moderne où le code évolue rapidement — parfois généré en partie par des assistants intelligents — cette capacité à enregistrer et comprendre les évolutions d’un projet devient essentielle.

Git fournit précisément cette mémoire technique.

Comprendre l’historique Git : le concept fondamental

Un projet logiciel n’est jamais figé. Il évolue constamment.

  • une fonctionnalité est ajoutée
  • un bug est corrigé
  • une dépendance est mise à jour
  • une architecture est refactorisée

Dans un environnement classique, ces changements apparaissent progressivement.
Dans un contexte de vibe coding avec Claude Code, ils peuvent apparaître beaucoup plus vite.

Un simple prompt peut provoquer :

  • l’ajout d’une fonction
  • la modification d’un service
  • la création d’un test
  • la refactorisation d’un module

Autrement dit : plusieurs changements importants peuvent apparaître en quelques secondes.

La question devient alors fondamentale :

comment savoir ce qui a réellement changé dans le projet ?

La réponse tient dans un concept clé : l’historique Git.

Un commit : une version identifiable du projet

Dans Git, chaque modification enregistrée devient un commit.

Un commit représente une version complète du projet à un instant précis.

Visuellement, cela ressemble à une succession d’états :

Version A → Version B → Version C → Version D

Chaque version correspond à un commit.

Un commit contient plusieurs informations techniques :

ÉlémentRôle
Hashidentifiant unique du commit
Parentversion précédente
Auteurpersonne ayant créé la modification
Datemoment de la création
Messagedescription du changement

Le hash agit comme une signature.
Il permet d’identifier précisément une version du projet.

Exemple :

c1a92f4

Avec ce hash, Git peut retrouver exactement l’état du projet à ce moment précis.

L’historique Git n’est pas une simple liste

Beaucoup imaginent l’historique comme une suite linéaire de versions.

Dans les faits, Git fonctionne différemment.

L’historique est un graphe de commits.

Un graphe permet de représenter plusieurs lignes d’évolution simultanément.

Par exemple :

A → B → C → D

Si une nouvelle branche est créée à partir de B :

A → B → C → D

E → F

Deux évolutions du projet existent maintenant :

  • la branche principale
  • la branche secondaire

Ces évolutions peuvent ensuite être fusionnées.

Ce fonctionnement est essentiel dans les projets modernes.

Pourquoi l’historique devient crucial avec le développement assisté par IA

Avec Git pour vibe coding, les modifications peuvent apparaître très rapidement.

Un assistant comme Claude Code peut modifier :

  • plusieurs fichiers
  • plusieurs fonctions
  • plusieurs couches du projet

Dans ce contexte, l’historique Git devient un outil d’analyse.

Il permet de répondre à des questions essentielles :

  • Quand ce changement a-t-il été introduit ?
  • Quelle version du projet fonctionnait correctement ?
  • Quelle modification a provoqué un bug ?

Sans historique clair, ces questions deviennent très difficiles à résoudre.

Conserver l’historique ou le simplifier

Toutes les opérations Git ne traitent pas l’historique de la même manière.

Certaines conservent chaque étape.

D’autres regroupent plusieurs modifications en une seule.

StratégieEffet sur l’historique
merge classiqueconserve toutes les étapes
fast-forwardgarde un historique linéaire
squash mergeregroupe plusieurs commits
rebaseréorganise la chronologie

Ces différences peuvent sembler techniques.
Elles deviennent pourtant très importantes lorsque plusieurs personnes — ou plusieurs outils d’IA — contribuent au même projet.

L’historique comme outil d’investigation

Lorsqu’un problème apparaît dans un projet, l’historique Git devient un véritable outil d’enquête.

Prenons une situation concrète.

Un bug apparaît dans une API.

Plusieurs modifications ont été introduites récemment, dont certaines générées par un assistant IA.

L’historique permet de remonter le fil des événements :

git log

On peut ensuite examiner précisément un commit :

git show <hash>

Git affiche alors :

  • les lignes ajoutées
  • les lignes supprimées
  • le message de modification

Cette capacité d’analyse est particulièrement utile dans un environnement où les changements peuvent être rapides et nombreux.

Une mémoire technique indispensable

Dans un projet moderne combinant Git et Claude Code, l’historique n’est pas seulement un journal.

C’est une mémoire technique du projet.

Chaque commit devient une trace :

  • d’une décision technique
  • d’une expérimentation
  • d’une correction

Dans un workflow Git avec IA, cette mémoire permet de garder le contrôle sur un projet qui évolue parfois très vite.

Produire du code est devenu facile.

Comprendre l’évolution d’un système logiciel dans le temps reste une compétence fondamentale.

Le modèle mental qui débloque vraiment Git : les trois zones du système

Beaucoup de développeurs utilisent Git pendant des années sans comprendre pourquoi certaines commandes fonctionnent… ou pourquoi d’autres provoquent des situations incompréhensibles.

Un fichier modifié qui ne se commit pas.
Un commit qui ne contient pas toutes les modifications.
Un git status qui parle de fichiers staged ou unstaged.

Ces comportements deviennent clairs dès que l’on comprend le modèle interne de Git.

Git ne travaille pas directement sur vos fichiers.
Il fonctionne avec trois zones distinctes.

ZoneRôle
Working Directorylà où vous modifiez vos fichiers
Staging Area (Index)zone de préparation des commits
Repositoryhistorique officiel du projet

Ces trois espaces coopèrent en permanence.

Comprendre ce mécanisme change radicalement la manière d’utiliser Git.

Le Working Directory : votre environnement de travail

Le working directory est tout simplement votre projet tel qu’il existe sur votre ordinateur.

C’est là que vous :

  • modifiez un fichier
  • ajoutez une fonction
  • corrigez un bug
  • testez un prototype

Dans un environnement de vibe coding avec Claude Code, cette zone est souvent modifiée par l’IA.

Un assistant peut par exemple modifier plusieurs fichiers :

export function normalizeEmail(email) {
return email.trim().toLowerCase();
}

À ce stade :

  • Git voit que le fichier a changé
  • mais aucune modification n’est encore enregistrée dans l’historique

Git considère simplement que le fichier est modifié.

Pour voir ces modifications :

git status

Git affiche alors les fichiers concernés.

La Staging Area : la salle d’attente des commits

La staging area est l’un des concepts les plus mal compris de Git.

Il s’agit d’un espace intermédiaire dans lequel vous sélectionnez précisément ce qui sera enregistré dans le prochain commit.

Pourquoi cette étape existe-t-elle ?

Parce qu’un fichier peut contenir plusieurs modifications, mais toutes ne doivent pas forcément être enregistrées en même temps.

Exemple concret.

Un fichier contient deux modifications :

  • une correction de bug
  • une amélioration de performance

Vous pouvez décider de ne committer que la correction.

La commande suivante ajoute une modification à la staging area :

git add fichier.js

La modification n’est pas encore enregistrée dans l’historique.

Elle est simplement préparée pour le prochain commit.

Dans un workflow Git pour développement assisté par IA, cette étape devient très utile.

Pourquoi ?

Parce qu’un assistant comme Claude Code peut modifier plusieurs fichiers à la fois.
La staging area permet alors de sélectionner précisément ce que vous souhaitez conserver.

Le Repository : l’historique officiel du projet

Le repository correspond à la base de données interne de Git.

C’est là que sont stockés :

  • les commits
  • les branches
  • l’historique complet

Un commit n’apparaît dans le repository qu’après cette commande :

git commit

À ce moment précis :

  • Git crée une nouvelle version du projet
  • l’historique évolue

La modification devient une étape permanente dans la vie du projet.

Une métaphore simple pour visualiser ces trois zones

Une analogie permet de comprendre immédiatement le fonctionnement.

Imaginez trois espaces :

EspaceMétaphore
Working Directoryvotre bureau de travail
Staging Areale dossier prêt à être envoyé
Repositoryl’archive officielle

Le flux devient alors évident :

travail → sélection → archivage

En langage Git :

modifier → git add → git commit

Pourquoi ce modèle est crucial avec Claude Code

Avec le vibe coding, une interaction avec l’IA peut générer plusieurs modifications simultanément.

Sans comprendre les trois zones Git, il devient facile de :

  • committer des modifications involontaires
  • mélanger plusieurs changements
  • introduire du code généré sans l’avoir inspecté

La staging area agit alors comme un filtre de validation humaine.

Un workflow Git avec IA ressemble souvent à ceci :

git status
git diff
git add fichier_valide.js
git commit

Autrement dit :

  1. l’IA propose des modifications
  2. vous inspectez les changements
  3. vous sélectionnez ce qui doit être conservé
  4. vous enregistrez une version propre du projet

Une règle simple utilisée par les développeurs expérimentés

Ne jamais committer directement ce que l’IA a généré.

Toujours passer par trois étapes :

  1. observer les changements
  2. sélectionner les modifications pertinentes
  3. créer un commit propre

Git ne sert pas seulement à sauvegarder un projet.

Dans un contexte de Git pour vibe coding, il sert à garder le contrôle sur un code produit très rapidement.

Comprendre les trois zones du système permet justement de garder cette maîtrise.

Installation et configuration de Git

Avant d’utiliser Git dans un projet réel, un point mérite d’être fait correctement : l’installation et la configuration de base.

Cela paraît trivial. Pourtant, beaucoup de développeurs travaillent avec une configuration approximative : identité incorrecte, éditeur mal défini, clés SSH absentes, ou configuration incohérente entre plusieurs machines.

Dans un environnement de vibe coding avec Claude Code, ces détails deviennent importants. Les assistants IA modifient souvent plusieurs fichiers à la fois, et Git doit pouvoir tracer correctement l’auteur, la machine et la configuration du projet.

Une configuration propre évite :

  • des commits attribués à une mauvaise identité
  • des erreurs lors du push vers un dépôt distant
  • des problèmes d’authentification

Installer Git

Git est disponible sur tous les systèmes majeurs. L’installation dépend simplement du système d’exploitation utilisé.

macOS

La méthode la plus simple passe par Homebrew, le gestionnaire de paquets le plus utilisé sur macOS.

brew install git

Une alternative consiste à installer Xcode Command Line Tools, qui inclut également Git.

xcode-select --install

Linux

La plupart des distributions Linux intègrent Git dans leurs dépôts officiels.

Ubuntu / Debian :

sudo apt update
sudo apt install git

Fedora :

sudo dnf install git

Windows

L’installation se fait via l’installateur officiel :

https://git-scm.com

L’installateur configure également Git Bash, un terminal compatible Unix très pratique pour travailler avec Git.

Vérifier l’installation

Une simple commande permet de confirmer que Git est correctement installé :

git --version

Exemple de résultat :

git version 2.44.0

La version n’est pas anodine. Les versions récentes de Git apportent régulièrement des améliorations importantes, notamment sur :

  • la performance
  • la gestion des branches
  • la sécurité

La documentation officielle recommande d’utiliser une version récente lorsque c’est possible.
Source : Git Documentation — git-scm.com.

Configurer son identité Git

Chaque commit contient des informations sur l’auteur. Ces informations sont définies dans la configuration Git.

Deux paramètres sont obligatoires :

  • le nom
  • l’adresse email

Configuration :

git config --global user.name "Votre Nom"
git config --global user.email "email@exemple.com"

Cette configuration est stockée dans un fichier appelé :

~/.gitconfig

L’option --global signifie que la configuration s’applique à tous les projets Git de la machine.

Il est possible de définir une identité différente pour un projet spécifique, par exemple dans un contexte professionnel.

Vérifier la configuration

Pour afficher la configuration actuelle :

git config --list

Git affiche alors toutes les variables configurées :

user.name=Votre Nom
user.email=email@exemple.com

Ces informations apparaîtront dans chaque commit.

Configurer l’éditeur par défaut

Lorsqu’un commit est créé sans message explicite, Git ouvre un éditeur de texte.

Il est préférable de définir explicitement l’éditeur utilisé.

Par exemple avec VS Code :

git config --global core.editor "code --wait"

Avec Nano :

git config --global core.editor "nano"

Avec Vim :

git config --global core.editor "vim"

Le paramètre --wait indique à Git d’attendre la fermeture de l’éditeur avant de continuer l’opération.

Authentification avec les dépôts distants

Lorsque Git communique avec un dépôt distant (GitHub, GitLab, Bitbucket), une authentification est nécessaire.

Deux méthodes existent.

MéthodeAvantage
HTTPSsimple à configurer
SSHplus sécurisé et plus pratique

La méthode SSH est généralement privilégiée dans les environnements professionnels.

Créer une clé SSH :

ssh-keygen -t ed25519 -C "email@exemple.com"

Ajouter ensuite la clé publique à votre plateforme Git.

Cette configuration permet ensuite d’effectuer :

git push

sans ressaisir un mot de passe.

Pourquoi cette configuration est importante avec Claude Code

Dans un environnement de Git et Claude Code, les commits peuvent être plus fréquents que dans un développement classique.

Les assistants IA encouragent souvent :

  • des cycles de modification rapides
  • des expérimentations fréquentes
  • des refactorisations importantes

Git doit alors pouvoir enregistrer chaque étape correctement.

Une configuration propre permet notamment :

  • d’identifier clairement l’auteur d’une modification
  • de différencier les environnements (personnel / professionnel)
  • de sécuriser l’accès aux dépôts

C’est une base simple, mais indispensable pour travailler efficacement dans un workflow Git avec IA.

Une fois Git correctement installé et configuré, il devient possible de commencer à manipuler un dépôt et à enregistrer les premières évolutions d’un projet.

Les commandes Git fondamentales expliquées en profondeur

Une fois Git installé et configuré, il faut comprendre comment un projet devient réellement un projet Git et comment les premières opérations structurent l’historique.

Dans un environnement classique, ces commandes servent à suivre l’évolution du code écrit par un développeur.

Dans un environnement de vibe coding avec Claude Code, elles servent surtout à encadrer et structurer les modifications générées par l’IA.

Un assistant peut modifier plusieurs fichiers en quelques secondes. Git permet alors de :

  • identifier précisément ce qui a changé
  • transformer ces changements en versions maîtrisées
  • garder une trace claire de chaque évolution du projet

Certaines commandes deviennent donc particulièrement importantes.

git init : transformer un dossier en projet versionné

Un projet n’est pas automatiquement suivi par Git.

La commande suivante initialise un dépôt Git dans un dossier :

git init

Git crée alors un répertoire caché :

.git

Ce dossier contient toute l’infrastructure Git :

  • l’historique des versions
  • les références des branches
  • les informations de configuration

À partir de ce moment, le dossier devient un dépôt Git.

Exemple :

mon-projet/
├── api.js
├── service.js
└── .git/

Chaque modification dans le projet pourra maintenant être suivie.

Dans un workflow Git pour vibe coding, cette étape intervient souvent au début d’un prototype généré avec Claude Code.

Un projet peut commencer par un prompt du type :

“Crée une API Node.js pour gérer des utilisateurs.”

L’IA peut générer plusieurs fichiers. Initialiser Git immédiatement permet de capturer l’état initial du projet.

git status : la commande que les développeurs utilisent le plus

git status est probablement la commande la plus utilisée dans Git.

Elle permet de comprendre l’état actuel du projet.

git status

Git indique notamment :

  • les fichiers modifiés
  • les fichiers ajoutés
  • les fichiers non suivis

Exemple :

modified: api.js
modified: auth.js

Dans un environnement avec Claude Code, cette commande devient particulièrement utile.

Après une modification générée par l’IA, git status permet de répondre immédiatement à une question essentielle :

quels fichiers ont réellement été modifiés ?

git add : préparer précisément un commit

Toutes les modifications ne doivent pas forcément être enregistrées immédiatement.

La commande suivante ajoute un fichier à la préparation du prochain commit :

git add fichier.js

Il est aussi possible d’ajouter toutes les modifications :

git add .

Mais dans un contexte de développement assisté par IA, cette seconde option doit être utilisée avec prudence.

Pourquoi ?

Parce qu’un assistant peut modifier plusieurs fichiers sans que vous l’ayez explicitement demandé.

Une bonne pratique consiste à inspecter les modifications avant de les ajouter.

git diff

Puis sélectionner uniquement ce qui doit être enregistré.

git commit : enregistrer une version du projet

Une fois les modifications préparées, un commit peut être créé.

git commit -m "Ajout validation email"

Le message de commit joue un rôle important. Il documente l’évolution du projet.

Dans un workflow Git avec IA, les messages de commit gagnent à être explicites.

Exemples :

feat: génération du module authentification avec Claude Code
fix: correction validation email
refactor: nettoyage du code généré par IA

Ces messages permettent de comprendre rapidement :

  • ce qui a changé
  • pourquoi
  • dans quel contexte

git log : explorer l’évolution du projet

Git conserve toutes les versions du projet. La commande suivante permet de les consulter :

git log

Chaque commit apparaît avec :

  • son identifiant
  • son auteur
  • sa date
  • son message

Exemple :

commit a2f3b19
Author: Franck
Date: Tue May 21feat: génération API utilisateur

Dans un projet où Claude Code intervient régulièrement, git log devient une sorte de journal technique.

On peut y voir :

  • les évolutions du projet
  • les refactorisations
  • les expérimentations

Une discipline essentielle dans le développement assisté par IA

Les assistants IA accélèrent la production de code. Mais cette vitesse doit être accompagnée d’une discipline technique.

Une règle simple s’impose souvent dans les équipes qui utilisent Git et Claude Code :

Après chaque modification importante générée par l’IA :

git status
git diff
git add
git commit

Ce cycle transforme des modifications rapides en versions structurées et compréhensibles.

Git devient alors le système qui transforme la vitesse du vibe coding en projet maîtrisé et évolutif.

Lire l’historique correctement : comprendre --graph, --decorate, --oneline, --all

Un projet Git accumule rapidement des dizaines, parfois des milliers de commits.
Sans outils de lecture adaptés, l’historique devient difficile à comprendre.

Dans un contexte de vibe coding avec Claude Code, cette capacité de lecture devient encore plus importante.

Pourquoi ?

Parce que les assistants IA peuvent introduire :

  • plusieurs modifications en une seule interaction
  • des refactorisations larges
  • des corrections successives rapides

Lire correctement l’historique Git permet alors de comprendre la chronologie réelle du projet.

Git fournit pour cela plusieurs options qui transforment la commande git log en véritable outil d’analyse.

Pourquoi git log brut est difficile à exploiter

La commande suivante affiche l’historique complet :

git log

Le résultat contient beaucoup d’informations :

commit 8a5c3d91c7a1a6c7
Author: Franck
Date: Tue Mar 19 10:21:02 2026Ajout module authentification

Cette présentation est utile pour un audit détaillé, mais elle devient rapidement difficile à parcourir lorsque l’historique s’allonge.

Git propose donc plusieurs options pour rendre cette lecture plus compacte et plus visuelle.

--oneline : condenser l’historique

L’option --oneline affiche chaque commit sur une seule ligne.

Commande :

git log --oneline

Résultat :

8a5c3d9 Ajout module authentification
d2a1f94 Correction validation email
5c4f1a2 Initialisation API

Deux éléments apparaissent :

  • le hash court du commit
  • le message associé

Cette vue compacte est particulièrement utile pour parcourir rapidement un historique.

Dans un projet où Claude Code intervient régulièrement, elle permet de repérer immédiatement les étapes importantes du projet.

--decorate : afficher les pointeurs Git

Git fonctionne avec des références appelées pointeurs.

Ces pointeurs indiquent :

  • la branche active
  • certaines branches locales
  • éventuellement des tags

L’option --decorate permet de les afficher.

git log --decorate

Exemple :

8a5c3d9 (HEAD -> main) Ajout module authentification
d2a1f94 Correction validation email

Les éléments importants :

ÉlémentSignification
HEADposition actuelle dans l’historique
mainbranche active

Ces indications permettent de comprendre où se situe le projet dans son évolution.

--all : afficher toutes les branches

Par défaut, Git affiche uniquement l’historique de la branche active.

Or un projet peut contenir plusieurs branches :

  • fonctionnalités
  • correctifs
  • expérimentations

L’option suivante affiche l’historique de toutes les branches.

git log --all

Cela devient particulièrement utile dans un workflow Git avec IA.

Pourquoi ?

Parce qu’il est fréquent de créer des branches d’expérimentation pour tester du code généré par Claude Code.

L’option --all permet alors de visualiser toutes les lignes d’évolution du projet.

--graph : visualiser la structure réelle de l’historique

L’option la plus intéressante pour comprendre Git est --graph.

Elle affiche l’historique sous forme de graphe.

git log --graph

Exemple simplifié :

* commit D
* commit C
|
| * commit F
| * commit E
* commit B
* commit A

Les symboles représentent la structure du graphe :

SymboleSignification
*un commit
``
/fusion de branches

Cette visualisation permet de comprendre :

  • quand une branche a divergé
  • quand elle a été fusionnée
  • comment les versions du projet se connectent entre elles

Combiner les options pour obtenir une vue claire

Ces options prennent toute leur valeur lorsqu’elles sont combinées.

La commande la plus utilisée par les développeurs expérimentés est :

git log --graph --decorate --oneline --all

Exemple de résultat :

*   2a9c1d3 (HEAD -> main) Merge branch 'feature-auth'
|
| * 4f3c1b2 Ajout validation email
| * 9b1d2c3 Génération module login avec Claude Code
* | 7c1d8a2 Correction bug session
|/
* 1a2c3d4 Initialisation projet

Cette vue fournit plusieurs informations importantes :

  • la structure du graphe
  • les branches existantes
  • les messages de commit
  • la position actuelle du projet

Lire l’historique devient une compétence clé

Dans un projet moderne utilisant Git et Claude Code, l’historique peut évoluer rapidement.

Les commits deviennent alors un outil essentiel pour :

  • comprendre les décisions techniques
  • identifier l’origine d’un problème
  • suivre l’évolution du projet

Les options de git log permettent de transformer un simple historique de commits en outil de lecture du projet.

C’est une compétence importante pour travailler efficacement dans un environnement de Git pour développement assisté par IA.

Comprendre les branches GIT

Un projet logiciel évolue rarement sur une seule ligne droite. Plusieurs idées apparaissent en parallèle :

  • une nouvelle fonctionnalité
  • une correction urgente
  • une expérimentation technique
  • une amélioration de performance

Git gère ces évolutions simultanées grâce aux branches.

Une branche permet de travailler sur une version alternative du projet sans perturber la version principale.

Dans un environnement de vibe coding avec Claude Code, cette capacité devient essentielle.
Un assistant IA peut proposer des modifications importantes : refactorisation, génération de modules ou restructuration de fichiers.

Avant d’accepter ces changements dans le projet principal, il est souvent préférable de les tester dans une branche isolée.

Une branche est simplement un pointeur

Contrairement à ce que beaucoup imaginent, une branche n’est pas une copie complète du projet.

C’est simplement un pointeur vers un commit particulier de l’historique.

Visuellement, un projet peut ressembler à ceci :

A → B → C  (main)

La branche main pointe vers le commit C.

Créer une nouvelle branche ne copie pas les fichiers.
Git crée simplement un nouveau pointeur.

Créer une branche

La commande suivante crée une branche :

git branch feature-auth

Cette branche pointe vers le même commit que la branche actuelle.

Il faut ensuite se déplacer dessus :

git switch feature-auth

Une commande combine souvent ces deux opérations :

git switch -c feature-auth

Le projet possède maintenant deux lignes d’évolution possibles.

A → B → C  (main)
(feature-auth)

Les deux branches pointent vers le même commit.

Travailler dans une branche

Une fois sur la branche, les modifications n’affectent pas les autres branches.

Dans un workflow Git et Claude Code, cela permet par exemple de tester un prototype généré par IA.

Imaginons un prompt :

« génère un système d’authentification avec JWT »

Claude Code peut alors modifier plusieurs fichiers.

auth.js
middleware.js
routes.js

Toutes ces modifications appartiennent désormais à la branche feature-auth.

La branche principale reste intacte.

Voir les branches existantes

La commande suivante affiche toutes les branches locales :

git branch

Exemple :

* feature-auth
main

L’astérisque indique la branche active.

Dans un projet complexe, plusieurs branches peuvent coexister :

main
feature-login
feature-payment
bugfix-api
experiment-ai-module

Bonnes pratiques de nommage

Un bon nom de branche doit indiquer l’objectif du travail en cours.

Quelques conventions courantes :

PréfixeUsage
featurenouvelle fonctionnalité
bugfixcorrection d’un bug
hotfixcorrection urgente
experimentprototype ou test

Dans un contexte de Git pour vibe coding, il est courant d’utiliser des branches dédiées aux expérimentations IA.

Exemple :

experiment-claude-auth
experiment-ai-refactor

Ces branches permettent de tester du code généré sans risquer d’impacter la version stable du projet.

Pourquoi les branches sont essentielles avec l’IA

Les assistants comme Claude Code peuvent proposer des modifications ambitieuses :

  • restructurer un module
  • changer une architecture
  • introduire une nouvelle dépendance

Ces modifications peuvent être utiles… ou problématiques.

Les branches offrent un espace sécurisé pour expérimenter.

Dans un workflow Git avec IA, une pratique simple est souvent adoptée :

  1. créer une branche expérimentale
  2. laisser l’IA modifier le projet
  3. tester le résultat
  4. décider ensuite si la modification doit être conservée

Ce mécanisme permet de profiter de la rapidité du vibe coding tout en protégeant la stabilité du projet.

Une règle simple pour travailler proprement

Un principe largement utilisé dans les équipes techniques :

Une idée = une branche.

Cette approche apporte plusieurs avantages :

  • chaque évolution est isolée
  • l’historique reste lisible
  • les expérimentations sont réversibles

Dans un environnement combinant Git et Claude Code, cette discipline devient encore plus importante.

Elle permet d’exploiter la puissance de l’IA sans transformer le projet en terrain d’expérimentation incontrôlé.

Fusionner des branches : comprendre les merges

Travailler avec des branches permet d’expérimenter, d’ajouter des fonctionnalités ou de tester du code généré par IA sans perturber la version stable du projet. Mais à un moment donné, une question se pose toujours :

comment intégrer ces changements dans la branche principale ?

C’est précisément le rôle du merge.

Fusionner une branche consiste à réunir deux lignes d’évolution du projet pour en produire une nouvelle version cohérente.

Dans un environnement de Git pour vibe coding, cette étape est particulièrement importante. Les assistants comme Claude Code peuvent générer des modifications complexes : nouveaux fichiers, refactorisations ou corrections multiples. Les merges permettent d’intégrer ces changements de manière contrôlée.

Le principe d’une fusion

Imaginons un projet où la branche principale évolue normalement :

A → B → C  (main)

Une branche d’expérimentation est créée pour tester une fonctionnalité générée par Claude Code :

A → B → C  (main)

D → E (experiment-ai-auth)

Pendant ce temps, le développement continue sur la branche principale :

A → B → C → F  (main)

D → E (experiment-ai-auth)

Les deux branches ont maintenant évolué différemment.
Le merge consiste à réconcilier ces deux histoires.

Le merge fast-forward

Dans certains cas, la branche principale n’a pas évolué pendant le travail sur une fonctionnalité.

Git peut alors simplement avancer le pointeur de la branche principale.

Exemple :

A → B → C  (main)

D → E (feature)

Commande :

git merge feature

Résultat :

A → B → C → D → E  (main)

Git déplace simplement la branche main vers le dernier commit de la branche feature.

Cette fusion est appelée fast-forward car l’historique reste parfaitement linéaire.

Le merge avec commit de fusion

Lorsque les deux branches ont évolué séparément, Git crée un commit de merge.

Situation initiale :

A → B → C → F  (main)

D → E (feature)

Commande :

git merge feature

Git produit alors une nouvelle version qui combine les deux lignes d’évolution :

A → B → C → F → M
↘ /
D → E

Le commit M est appelé commit de merge.
Il possède deux parents :

  • la branche principale
  • la branche fusionnée

Ce type de merge est courant dans les projets collaboratifs.

Le squash merge : regrouper plusieurs commits

Dans certains cas, une branche contient de nombreux commits intermédiaires :

C → D → E → F

Il peut être préférable de regrouper ces étapes en une seule modification.

Git permet cela avec l’option suivante :

git merge --squash feature

Résultat :

A → B → C → G

Les commits D, E et F deviennent un seul commit G.

Cette approche est souvent utilisée pour intégrer une fonctionnalité complète sans conserver toutes les étapes intermédiaires.

Le merge octopus : fusionner plusieurs branches

Git permet aussi de fusionner plusieurs branches en une seule opération.

git merge feature-login feature-api feature-ui

Cette stratégie s’appelle merge octopus.

Elle est utile lorsque plusieurs branches indépendantes doivent être intégrées simultanément.

Cependant, elle fonctionne uniquement si aucun conflit n’apparaît.

Choisir la bonne stratégie de merge

Chaque type de fusion a ses avantages.

StratégieUsage
fast-forwardhistorique simple et linéaire
merge commithistorique complet conservé
squashsimplifier l’historique
octopusfusionner plusieurs branches

Dans un projet combinant Git et Claude Code, ces stratégies permettent de gérer différemment les modifications générées par IA.

Par exemple :

  • un prototype expérimental peut être intégré via un squash
  • une évolution structurante peut conserver tous ses commits

Le merge dans un workflow Git avec IA

Lorsque l’on utilise Claude Code, une branche peut contenir des modifications importantes générées automatiquement :

  • restructuration d’un module
  • ajout d’une fonctionnalité
  • nettoyage d’un code existant

Avant de fusionner cette branche, plusieurs vérifications sont généralement nécessaires :

  • inspecter les changements avec git diff
  • tester la fonctionnalité
  • vérifier la cohérence avec le reste du projet

Le merge devient alors le moment où une expérimentation devient une version officielle du projet.

C’est l’étape où le code généré par IA cesse d’être un prototype pour devenir une partie intégrante du système.

Dans un environnement de Git pour développement assisté par IA, comprendre les différentes stratégies de merge permet donc de garder un historique clair et un projet stable.

Comprendre et résoudre les conflits Git

Fusionner des branches fonctionne la plupart du temps automatiquement. Git sait analyser les différences entre les versions et reconstruire un résultat cohérent.

Mais certaines situations posent un problème simple : deux modifications incompatibles ont été faites au même endroit du code.

Dans ce cas, Git ne peut pas décider seul quelle version garder.
Il signale alors un conflit.

Dans un environnement classique, ces conflits apparaissent déjà régulièrement.
Dans un contexte de vibe coding avec Claude Code, ils deviennent encore plus fréquents.

Pourquoi ?

Parce que les assistants IA peuvent :

  • modifier plusieurs fichiers en une seule interaction
  • refactoriser des fonctions existantes
  • restructurer une partie du code

Pendant ce temps, d’autres modifications peuvent avoir été introduites ailleurs dans le projet.

Deux versions du code entrent alors en contradiction.

Quand un conflit apparaît

Un conflit survient généralement dans trois situations :

  • deux branches modifient la même ligne d’un fichier
  • une branche modifie une fonction que l’autre supprime
  • une modification importante intervient dans un fichier déjà modifié ailleurs

Prenons un exemple simple.

Version dans la branche principale :

function validateEmail(email) {
return email.includes("@");
}

Version générée dans une branche expérimentale avec Claude Code :

function validateEmail(email) {
return /^[^s@]+@[^s@]+.[^s@]+$/.test(email);
}

Les deux versions modifient la même fonction.

Git ne peut pas déterminer laquelle doit être conservée.

Comment Git signale un conflit

Lorsqu’un conflit apparaît, Git arrête le processus de fusion et modifie les fichiers concernés pour signaler le problème.

Le code apparaît alors sous cette forme :

<<<<<<< HEAD
return email.includes("@");
=======
return /^[^s@]+@[^s@]+.[^s@]+$/.test(email);
>>>>>>> feature-auth

Ces marqueurs indiquent les deux versions en conflit.

MarqueurSignification
<<<<<<< HEADversion actuelle
=======séparation des versions
>>>>>>> feature-authversion de la branche fusionnée

Le développeur doit alors décider quelle version conserver.

Résoudre un conflit

La résolution consiste simplement à modifier le fichier pour produire une version finale cohérente.

Exemple :

function validateEmail(email) {
return /^[^s@]+@[^s@]+.[^s@]+$/.test(email);
}

Les marqueurs doivent être supprimés.

Une fois la modification effectuée, Git doit être informé que le conflit est résolu.

git add auth.js

Puis la fusion peut être finalisée :

git commit

Vérifier l’état du dépôt pendant un conflit

Lorsque des conflits existent, Git indique clairement les fichiers concernés.

git status

Exemple :

both modified: auth.js

Cette commande permet d’identifier rapidement les fichiers à corriger.

Abandonner une fusion problématique

Il arrive qu’un merge soit trop complexe ou mal engagé.

Git permet alors de revenir immédiatement à l’état précédent.

git merge --abort

Cette commande annule complètement la tentative de fusion.

Le projet retrouve exactement l’état qu’il avait avant l’opération.

Dans un workflow impliquant Git et Claude Code, cette option est particulièrement utile lorsque l’IA a généré des modifications trop importantes pour être intégrées facilement.

Les conflits dans un workflow Git avec IA

Les assistants de développement modifient souvent le code de manière large.

Un simple prompt peut entraîner :

  • des modifications dans plusieurs fichiers
  • des restructurations de fonctions
  • l’ajout de nouvelles dépendances

Ces modifications peuvent entrer en conflit avec d’autres évolutions du projet.

Les conflits deviennent alors un mécanisme normal du processus de développement.

Ils ne signalent pas une erreur de Git.

Ils indiquent simplement qu’une décision humaine est nécessaire.

Réduire les conflits dans un environnement de vibe coding

Certaines pratiques permettent de limiter leur apparition.

Les équipes qui utilisent Git pour développement assisté par IA appliquent souvent plusieurs règles simples.

Avant de générer du code avec Claude Code :

  • récupérer les dernières modifications du projet
  • travailler dans une branche dédiée

Après la génération :

  • inspecter les modifications
  • effectuer des commits réguliers

Ces pratiques maintiennent un historique clair et réduisent les conflits complexes.

Le conflit comme outil de clarification

Un conflit Git peut sembler bloquant au premier abord. En réalité, il joue un rôle utile.

Il empêche deux versions incompatibles du code d’être fusionnées automatiquement.

Dans un environnement de vibe coding, où les modifications peuvent être rapides et nombreuses, ce mécanisme agit comme une barrière de sécurité.

Il oblige à vérifier que les changements introduits — qu’ils proviennent d’un développeur ou d’un assistant IA — restent cohérents avec l’ensemble du projet.

Git et dépôts distants : GitHub, GitLab, Bitbucket

Jusqu’ici, toutes les opérations Git se déroulent localement sur votre machine. Vous pouvez créer un projet, enregistrer des commits, gérer des branches et fusionner du code sans jamais quitter votre ordinateur.

Mais dans un projet réel, le code doit être partagé.

  • pour collaborer avec d’autres développeurs
  • pour déployer une application
  • pour automatiser des tests
  • pour stocker le projet de manière sécurisée

C’est ici qu’interviennent les dépôts distants.

Un dépôt distant est simplement une copie du projet Git hébergée sur un serveur.

Les plateformes les plus utilisées aujourd’hui sont :

  • GitHub
  • GitLab
  • Bitbucket

Ces services ne remplacent pas Git. Ils offrent une infrastructure pour héberger, partager et gérer les dépôts Git.

Dépôt local vs dépôt distant

Un projet Git existe toujours en deux dimensions :

Type de dépôtRôle
dépôt localversion du projet sur votre machine
dépôt distantversion partagée sur un serveur

La relation entre ces deux espaces est permanente.

ordinateur local  ↔  serveur Git

Les modifications circulent entre les deux grâce à plusieurs commandes.

Dans un workflow moderne de Git pour développement assisté par IA, cette synchronisation est essentielle.

Pourquoi ?

Parce que les modifications générées avec Claude Code doivent être :

  • testées localement
  • puis partagées avec l’équipe
  • éventuellement intégrées dans une version officielle du projet

Cloner un dépôt existant

Lorsqu’un projet existe déjà sur un serveur, la première étape consiste à récupérer une copie locale.

La commande utilisée est :

git clone https://github.com/exemple/projet.git

Git effectue alors plusieurs opérations :

  1. téléchargement du dépôt
  2. récupération de l’historique complet
  3. création d’un dossier local

Structure obtenue :

projet/
├── src/
├── tests/
└── .git/

La machine locale possède maintenant une copie complète du projet.

Comprendre la notion de « remote »

Git appelle un dépôt distant un remote.

Chaque remote possède un nom.

Le plus courant est :

origin

Ce nom est simplement un alias vers l’URL du dépôt distant.

Pour voir les remotes configurés :

git remote -v

Exemple :

origin  https://github.com/exemple/projet.git

Envoyer du code vers le dépôt distant : git push

Une fois des modifications enregistrées localement, elles peuvent être envoyées vers le serveur.

git push origin main

Cette commande signifie :

  • envoyer les commits locaux
  • vers le dépôt distant
  • sur la branche main

Dans un projet utilisant Git et Claude Code, ce moment correspond souvent à la publication d’une modification générée ou validée après expérimentation.

Récupérer les modifications du serveur : git pull

Dans un projet collaboratif, d’autres développeurs peuvent modifier le code.

Pour récupérer leurs changements :

git pull origin main

Git télécharge les modifications du serveur et les applique au projet local.

Cette commande est essentielle dans un environnement où plusieurs personnes travaillent sur le même dépôt.

Synchroniser un projet dans un workflow Git avec IA

Dans un contexte de vibe coding, un cycle de travail typique peut ressembler à ceci :

récupérer la dernière version

générer ou modifier du code avec Claude Code

tester localement

committer les modifications

envoyer le résultat sur le dépôt distant

En pratique :

git pull
git commit
git push

Cette synchronisation garantit que l’historique reste cohérent pour toute l’équipe.

Pourquoi les dépôts distants sont essentiels avec l’IA

Les assistants comme Claude Code facilitent les expérimentations rapides. Mais ces expérimentations doivent être intégrées dans un projet partagé.

Les plateformes Git permettent alors plusieurs choses :

  • centraliser l’historique du projet
  • partager les modifications
  • gérer les contributions
  • déclencher des tests automatisés

Dans un workflow Git moderne, le dépôt distant devient le point de référence du projet.

Chaque machine possède une copie complète, mais la version distante sert de référence commune.

C’est cette architecture distribuée qui permet à Git de fonctionner efficacement dans les projets collaboratifs, qu’ils soient développés par des humains… ou assistés par des modèles d’intelligence artificielle.

Workflow Git classique en équipe

Une fois les bases de Git maîtrisées, la vraie question n’est plus seulement comment utiliser Git, mais comment organiser le travail autour de Git.

Dans un projet individuel, quelques commits suffisent.
Dans un projet collaboratif — et encore plus dans un environnement de développement assisté par IA avec Claude Code — il faut structurer la manière dont les modifications sont introduites dans le projet.

C’est ce que l’on appelle un workflow Git.

Un workflow définit :

  • comment créer des branches
  • comment introduire des changements
  • comment valider du code
  • comment intégrer ces changements dans la version principale du projet

Sans workflow clair, un projet devient rapidement difficile à maintenir.

Le principe central : une modification = une branche

Dans la plupart des équipes techniques, une règle simple s’impose :

chaque évolution du projet doit être développée dans sa propre branche.

Cette évolution peut être :

  • une nouvelle fonctionnalité
  • une correction de bug
  • une amélioration de performance
  • une expérimentation technique

Dans un contexte de Git pour vibe coding, cette règle est encore plus utile.

Les assistants IA peuvent produire des modifications importantes. Les isoler dans une branche permet de :

  • tester le résultat
  • analyser les changements
  • décider si la modification mérite d’être intégrée au projet

Cycle de travail typique d’une fonctionnalité

Un cycle Git classique suit généralement plusieurs étapes.

  1. créer une branche dédiée
  2. développer la modification
  3. enregistrer les commits
  4. proposer l’intégration dans le projet
  5. valider la modification
  6. fusionner dans la branche principale

Ce processus permet de maintenir un projet stable tout en laissant de la place aux évolutions.

La Pull Request : point central du travail collaboratif

Les plateformes comme GitHub, GitLab ou Bitbucket introduisent une étape supplémentaire appelée :

Pull Request (ou Merge Request).

Une Pull Request est une proposition d’intégration d’une branche dans une autre.

Elle permet de :

  • visualiser les modifications
  • commenter le code
  • effectuer une revue technique
  • lancer des tests automatisés

Exemple de workflow :

branche feature

Pull Request

revue de code

fusion dans main

Cette étape agit comme un point de contrôle avant l’intégration finale.

Pourquoi cette étape est cruciale avec Claude Code

Lorsqu’un assistant IA intervient dans un projet, il peut produire du code fonctionnel… mais pas forcément optimal.

Certaines modifications générées peuvent :

  • introduire des dépendances inutiles
  • dupliquer une fonction existante
  • créer des effets de bord

La Pull Request devient alors un moment clé pour :

  • analyser les changements
  • vérifier leur cohérence
  • améliorer le code généré

Dans un workflow Git avec IA, la revue humaine reste essentielle.

Les tests automatisés dans le workflow Git

Les plateformes Git modernes permettent d’intégrer des systèmes de CI/CD (Continuous Integration / Continuous Delivery).

Lorsqu’une Pull Request est créée :

  • les tests unitaires peuvent être exécutés automatiquement
  • le code peut être analysé
  • des contrôles de qualité peuvent être appliqués

Exemple d’outils :

  • GitHub Actions
  • GitLab CI
  • Jenkins

Ces mécanismes permettent de vérifier que les modifications introduites — qu’elles proviennent d’un développeur ou d’un assistant IA — respectent les standards du projet.

Intégrer les modifications dans la branche principale

Une fois la modification validée, la branche peut être intégrée dans la branche principale du projet.

Cette étape correspond à la fusion finale.

Elle marque un moment important :

la modification devient officiellement une partie du projet.

Dans un workflow Git moderne, cette étape intervient uniquement après :

  • revue du code
  • validation technique
  • tests automatisés réussis

Un workflow particulièrement adapté au développement assisté par IA

Les équipes qui utilisent Git et Claude Code adoptent souvent une approche simple :

  1. créer une branche d’expérimentation
  2. générer ou modifier le code avec l’IA
  3. analyser les changements
  4. proposer une Pull Request
  5. améliorer le code si nécessaire
  6. fusionner une version propre dans le projet

Ce processus permet de bénéficier de la vitesse du vibe coding tout en conservant un projet stable et maintenable.

Git n’est alors plus seulement un outil de versioning.

Il devient la colonne vertébrale de l’organisation du travail autour du code.

Git pour vibe coding : le nouveau paradigme

Le développement assisté par IA change profondément la manière de produire du code. Les assistants comme Claude Code, Cursor ou GitHub Copilot permettent de générer rapidement des fonctions, des modules ou même des architectures complètes.

Cette nouvelle manière de travailler est souvent appelée vibe coding.

Le principe est simple : au lieu d’écrire chaque ligne de code, vous décrivez une intention et l’IA propose une implémentation.

Ce changement peut sembler purement technique. En réalité, il modifie aussi la manière d’utiliser Git.

Pourquoi ? Parce que la production de code devient beaucoup plus rapide, et donc potentiellement plus chaotique si aucun cadre n’est mis en place.

Git devient alors le système qui structure et sécurise cette nouvelle façon de coder.

Le changement de rôle du développeur

Dans un environnement classique, un développeur écrit progressivement le code d’une fonctionnalité.

Avec le vibe coding, le processus devient différent.

Le développeur :

  • décrit un objectif
  • laisse l’IA proposer une implémentation
  • examine les modifications
  • ajuste ou corrige le résultat

Ce changement transforme le rôle du développeur.

Approche classiqueVibe coding
écrire chaque fonctiondécrire le comportement
implémenter les algorithmesvalider les propositions de l’IA
construire progressivementgénérer rapidement des blocs de code

Git devient alors l’outil qui permet de garder une trace claire de ces expérimentations.

Le risque du développement assisté par IA

La génération rapide de code introduit plusieurs risques techniques.

Une interaction avec Claude Code peut produire :

  • plusieurs fichiers modifiés
  • des refactorisations importantes
  • des dépendances supplémentaires
  • des fonctions redondantes

Ces changements peuvent être utiles… ou introduire de nouveaux problèmes.

Sans discipline Git, un projet peut rapidement accumuler :

  • des commits massifs
  • un historique difficile à lire
  • des modifications mal comprises

Git doit donc être utilisé différemment dans un environnement de Git pour développement assisté par IA.

Git comme outil d’expérimentation contrôlée

Le vibe coding encourage l’expérimentation.

On peut tester rapidement une idée :

  • générer une API
  • restructurer un module
  • créer un service

Mais toutes ces expérimentations ne doivent pas être intégrées immédiatement dans le projet principal.

Git permet justement de tester ces idées sans risque.

Un workflow simple consiste à :

  1. créer une branche dédiée à l’expérimentation
  2. générer ou modifier le code avec l’IA
  3. inspecter les modifications
  4. conserver uniquement les changements pertinents

Cette approche transforme Git en terrain d’expérimentation sécurisé.

Pourquoi Git devient encore plus important avec Claude Code

Les assistants IA peuvent accélérer considérablement le développement.

Mais cette vitesse ne remplace pas la compréhension du système.

Git apporte trois garanties essentielles dans ce contexte.

Premièrement, la traçabilité.
Chaque modification générée par l’IA peut être examinée et documentée.

Deuxièmement, la réversibilité.
Si une expérimentation introduit un problème, il est possible de revenir immédiatement à une version stable.

Troisièmement, la lisibilité du projet.
Un historique Git propre permet de comprendre comment le système a évolué.

Ces trois aspects deviennent critiques lorsque le code peut être généré très rapidement.

Une discipline Git adaptée au vibe coding

Les équipes qui utilisent intensivement les assistants IA appliquent souvent quelques principes simples.

Les modifications générées par IA sont :

  • inspectées avant d’être validées
  • enregistrées dans des commits clairs
  • isolées dans des branches dédiées

Cette discipline permet de bénéficier de la vitesse du vibe coding tout en conservant un projet maîtrisé.

Dans ce contexte, Git ne sert plus seulement à sauvegarder du code.

Il devient le système qui structure la collaboration entre développeurs humains et assistants intelligents.

Workflow Git avec IA : comment travailler avec Claude Code

Lorsque l’on utilise Claude Code ou un autre assistant de développement, le cycle de travail change. Le code peut être généré très rapidement, parfois sur plusieurs fichiers à la fois. Sans méthode claire, cette rapidité devient vite un problème : modifications difficiles à suivre, comportements imprévus, historique brouillon.

Un workflow Git avec IA vise justement à canaliser cette vitesse. L’objectif n’est pas de ralentir le développement, mais de structurer les expérimentations et les validations.

Une approche simple consiste à transformer chaque interaction importante avec l’IA en une séquence claire d’étapes Git.

Créer une zone d’expérimentation pour l’IA

La première règle consiste à isoler les expérimentations. Avant de demander une modification importante à Claude Code, il est préférable de créer un espace dédié.

Cette isolation permet de tester librement des idées générées par l’IA sans perturber la version stable du projet.

Exemple :

git switch -c experiment-ai-cache

Cette branche devient un laboratoire temporaire.

Vous pouvez alors demander à Claude Code :

  • d’optimiser une fonction
  • de restructurer une API
  • d’ajouter une couche de cache
  • d’introduire un nouveau service

Toutes ces modifications restent confinées dans cet environnement d’expérimentation.

Observer ce que l’IA a réellement modifié

Les assistants IA peuvent produire des changements plus larges que prévu. Une instruction peut modifier plusieurs fichiers ou refactoriser des fonctions existantes.

Avant toute validation, il est essentiel d’examiner ces modifications.

Deux commandes deviennent particulièrement utiles :

git status

et

git diff

La première indique les fichiers modifiés.
La seconde montre précisément les lignes ajoutées ou supprimées.

Cette étape est fondamentale dans un workflow Git avec IA. Elle permet de comprendre ce que l’assistant a réellement fait, et d’identifier d’éventuels effets de bord.

Enregistrer les modifications pertinentes

Une fois les changements analysés et validés, les modifications peuvent être enregistrées dans l’historique.

Dans un contexte de Git pour développement assisté par IA, les commits gagnent à être précis et explicites.

Exemple :

git commit -m "feat: ajout d’un cache Redis généré avec Claude Code"

Ou :

git commit -m "refactor: simplification du service utilisateur après génération IA"

Ces messages permettent de comprendre rapidement :

  • le contexte de la modification
  • l’objectif technique
  • l’origine éventuelle du code généré

L’historique devient ainsi un véritable journal technique.

Tester et affiner le code généré

Le code produit par l’IA est rarement parfait dès la première génération. Plusieurs cycles d’amélioration sont souvent nécessaires.

Un workflow efficace consiste à alterner entre :

  1. génération de code avec Claude Code
  2. inspection des modifications
  3. ajustement ou refactorisation
  4. commit d’une version améliorée

Ce processus produit une série de versions successives du projet, chacune plus stable que la précédente.

Git permet de suivre cette évolution sans perdre d’informations.

Décider si l’expérimentation doit être intégrée

Une fois l’expérimentation terminée, plusieurs options sont possibles :

  • conserver la modification
  • l’améliorer
  • ou l’abandonner

Si l’expérimentation est concluante, la branche peut être intégrée dans le projet principal.

Dans le cas contraire, la branche peut simplement être supprimée.

Cette capacité à tester puis abandonner facilement une idée est l’un des grands avantages de Git dans un environnement de vibe coding.

Un cycle de travail typique avec Claude Code

Dans la pratique, un workflow Git avec IA ressemble souvent à ceci :

nouvelle idée ou optimisation

création d’une branche d’expérimentation

génération de code avec Claude Code

analyse des modifications

commits progressifs

tests et ajustements

intégration ou abandon de l’expérimentation

Ce cycle transforme la génération rapide de code en processus maîtrisé.

Git comme interface entre l’humain et l’IA

Les assistants comme Claude Code accélèrent considérablement le développement. Mais ils ne remplacent pas le jugement humain.

Git joue alors un rôle essentiel : il sert d’interface entre la production rapide de l’IA et la validation humaine.

Grâce à ce mécanisme :

  • les expérimentations restent contrôlées
  • l’historique du projet reste lisible
  • chaque évolution du système peut être comprise

Dans un environnement de Git et Claude Code, Git devient ainsi l’outil qui transforme le vibe coding en développement structuré et durable.

Git comme système d’audit du code généré par IA

Dans un projet logiciel classique, l’audit du code consiste à comprendre qui a modifié quoi, quand et pourquoi. Les équipes utilisent cette capacité pour analyser des bugs, améliorer l’architecture ou vérifier qu’une modification respecte les standards du projet.

Avec le développement assisté par IA, cette capacité devient encore plus importante. Un assistant comme Claude Code peut produire rapidement plusieurs blocs de code : nouvelles fonctions, refactorisations ou modifications de configuration. Ces changements peuvent être pertinents, mais ils doivent être vérifiés, compris et parfois corrigés.

Git offre justement les outils nécessaires pour transformer un projet en système d’audit technique complet.

Identifier l’origine d’une modification

Lorsqu’un comportement inattendu apparaît dans une application, la première question à se poser est simple :

quelle modification a introduit ce comportement ?

Git permet de remonter précisément à l’origine d’une ligne de code.

La commande suivante affiche l’auteur et le commit associé à chaque ligne d’un fichier :

git blame fichier.js

Exemple simplifié :

a2f3b19 (Franck 2026-03-10) function validateEmail(email) {
b9e4c21 (Franck 2026-03-12) return /^[^s@]+@[^s@]+.[^s@]+$/.test(email);
}

Chaque ligne indique :

  • l’identifiant du commit
  • l’auteur
  • la date de modification

Dans un environnement utilisant Git et Claude Code, cette commande permet de retrouver rapidement la version du code introduite après une génération ou une refactorisation assistée par IA.

Comparer deux versions du projet

Un audit technique repose souvent sur la comparaison entre deux états du projet.

Git permet d’analyser précisément les différences entre deux commits.

git diff commit_A commit_B

Git affiche alors les lignes ajoutées et supprimées.

Exemple :

- return email.includes("@");
+ return /^[^s@]+@[^s@]+.[^s@]+$/.test(email);

Cette comparaison permet de comprendre :

  • ce qui a changé
  • comment la logique du code a évolué
  • si la modification introduit un comportement nouveau

Dans un contexte de Git pour développement assisté par IA, cette analyse est particulièrement utile lorsque plusieurs versions d’un module ont été générées par Claude Code.

Examiner un commit en détail

Un commit contient plus qu’un simple message. Il regroupe l’ensemble des modifications introduites à un moment précis.

La commande suivante affiche le contenu complet d’un commit :

git show <hash_du_commit>

Git affiche alors :

  • le message du commit
  • les fichiers modifiés
  • les lignes ajoutées ou supprimées

Cette commande permet de comprendre exactement l’intention technique derrière une modification.

Dans un projet où des modifications proviennent d’un assistant IA, cet examen détaillé aide à vérifier que les changements sont cohérents avec l’architecture globale.

Auditer l’évolution d’un fichier

Il arrive qu’un fichier évolue fortement au fil du temps : ajout de fonctionnalités, refactorisations successives ou corrections de bugs.

Git permet de suivre l’historique spécifique d’un fichier :

git log fichier.js

Cette commande affiche uniquement les commits qui ont modifié ce fichier.

Dans un projet utilisant Claude Code, cette vue permet d’identifier les différentes étapes d’une évolution :

  • première implémentation
  • version générée par IA
  • corrections manuelles
  • optimisation finale

Le fichier devient ainsi une chronique technique de l’évolution du système.

Identifier rapidement la source d’un bug

Lorsque qu’un bug apparaît, il est souvent utile de trouver le commit qui a introduit l’erreur.

Git propose un outil puissant pour cela : git bisect.

Le principe est simple. Git teste automatiquement différentes versions du projet pour isoler le commit responsable d’un problème.

Cycle simplifié :

version stable

version avec bug

Git teste les versions intermédiaires

identification du commit responsable

Cette méthode réduit considérablement le temps nécessaire pour identifier l’origine d’un problème complexe.

Dans un environnement de Git pour vibe coding, où plusieurs versions d’un module peuvent être générées rapidement par Claude Code, cette technique devient particulièrement précieuse.

Un journal technique indispensable dans le développement assisté par IA

Le code généré par IA peut accélérer considérablement la production logicielle. Mais il augmente également la quantité de changements introduits dans un projet.

Git agit alors comme un journal technique complet.

Il permet :

  • d’identifier l’origine d’une modification
  • de comparer les versions d’un module
  • de suivre l’évolution d’un fichier
  • de retrouver le commit responsable d’un problème

Dans un environnement combinant Git et Claude Code, ces capacités transforment Git en véritable outil d’analyse du système.

Le développement assisté par IA produit plus de code.
Git permet de comprendre ce code dans le temps.

Commandes Git avancées utiles pour le développement assisté par IA

Une fois les bases maîtrisées, certaines commandes Git deviennent particulièrement utiles pour travailler efficacement dans un environnement moderne combinant Git et Claude Code.

Ces commandes ne sont pas indispensables pour débuter. Mais elles deviennent rapidement précieuses dès que :

  • un projet devient plus complexe
  • les expérimentations se multiplient
  • le code évolue rapidement

Dans un contexte de vibe coding, elles permettent surtout de garder le contrôle sur des modifications rapides et parfois volumineuses générées par l’IA.

git stash : mettre temporairement des modifications de côté

Il arrive souvent de modifier plusieurs fichiers puis de devoir changer de branche rapidement.

Git refusera généralement ce changement si les modifications ne sont pas enregistrées.

La commande suivante permet de mettre les modifications de côté temporairement :

git stash

Git sauvegarde alors l’état actuel du travail et remet le projet dans un état propre.

Plus tard, les modifications peuvent être restaurées :

git stash pop

Dans un workflow avec Claude Code, cette commande est utile lorsque :

  • une expérimentation générée par IA est en cours
  • mais une correction urgente doit être appliquée ailleurs

Le travail en cours peut être mis de côté sans créer de commit intermédiaire inutile.

git reset : revenir à un état précédent

Parfois, une modification ne donne pas le résultat attendu.

Un module généré par IA peut par exemple introduire une complexité inutile ou modifier un comportement existant.

Git permet alors de revenir à un état précédent du projet.

git reset --hard HEAD~1

Cette commande supprime le dernier commit et replace le projet dans l’état précédent.

Dans un environnement de Git pour développement assisté par IA, cette capacité à revenir rapidement à une version stable est essentielle pour tester des idées sans risque.

git reflog : retrouver des commits perdus

Même lorsqu’un commit semble supprimé, Git conserve souvent une trace interne de ses déplacements.

La commande suivante affiche l’historique des mouvements de la branche :

git reflog

Exemple :

a2f3b19 HEAD@{0}: commit: ajout cache Redis
9c1a8f2 HEAD@{1}: commit: refactor module utilisateur

Cette commande permet de retrouver un commit même après un reset ou un changement de branche.

Elle agit comme un journal interne des mouvements du dépôt.

Dans un contexte de vibe coding, où les expérimentations peuvent être nombreuses, git reflog devient un outil de récupération précieux.

git stash list et gestion des stashes

Lorsque plusieurs travaux temporaires sont sauvegardés, Git permet de les visualiser.

git stash list

Exemple :

stash@{0}: WIP refactor auth module
stash@{1}: test optimisation cache

Chaque entrée correspond à une sauvegarde temporaire.

Il est possible d’appliquer un stash spécifique :

git stash apply stash@{1}

Cette gestion devient utile lorsque plusieurs expérimentations générées par IA doivent être testées séparément.

git clean : nettoyer les fichiers non suivis

Lors d’expérimentations, certains fichiers temporaires peuvent apparaître :

  • scripts générés par IA
  • fichiers de test
  • artefacts de build

Git ne suit pas ces fichiers. La commande suivante permet de les supprimer :

git clean -fd

Elle efface les fichiers non suivis et les dossiers associés.

Dans un environnement de Git pour vibe coding, cela permet de nettoyer rapidement un projet après plusieurs essais générés par l’IA

Une boîte à outils pour expérimenter sans risque

Ces commandes avancées forment une sorte de boîte à outils pour le développement expérimental.

Elles permettent de :

  • sauvegarder temporairement un travail
  • revenir à une version stable
  • récupérer des modifications perdues
  • nettoyer un projet

Dans un environnement où Claude Code peut générer rapidement des prototypes, ces outils offrent une sécurité supplémentaire.

Ils permettent d’explorer des idées nouvelles sans craindre de perdre le contrôle sur l’évolution du projet.

Git devient alors non seulement un système de versioning, mais aussi un environnement sécurisé pour expérimenter avec l’IA.



Idée clé :

Plus l’IA écrit du code, plus Git devient indispensable.

Git permet :

  • d’expérimenter sans risque
  • de comprendre les modifications
  • de revenir en arrière
  • de maintenir un historique fiable.
Retour en haut
Formations Analytics