Général 13 min de lecture · 2 774 mots

Git pour les débutants – Versionner son code efficacement

Git est l'outil de versioning indispensable pour tout développeur. Maîtrisez les commandes de base, le workflow professionnel et la collaboration sur GitHub avec ce guide pratique complet.

Estimated reading time: 12 minutes

Pourquoi Git est incontournable en 2025 ?

Imaginez que vous travaillez sur un projet de développement web depuis plusieurs semaines. Vous ajoutez une nouvelle fonctionnalité, mais elle casse tout votre site. Sans Git, vous devriez défaire manuellement toutes vos modifications en espérant ne rien oublier. Avec Git, vous pouvez revenir à la version précédente en une seule commande.

Table of Contents

Git est un système de contrôle de version qui enregistre l’historique complet de vos modifications. C’est comme avoir une machine à remonter le temps pour votre code. En 2025, Git est utilisé par plus de 95% des développeurs professionnels et est un prérequis pour pratiquement tous les postes de développement.

Les avantages de Git

  • Historique complet : Chaque modification est enregistrée avec qui, quand, et pourquoi
  • Travail en parallèle : Plusieurs développeurs peuvent travailler simultanément sans se marcher dessus
  • Branches : Testez de nouvelles fonctionnalités sans risquer de casser le code principal
  • Sauvegarde distribuée : Chaque développeur a une copie complète du projet
  • Collaboration facilitée : Code review, pull requests, gestion de conflits
  • Retour arrière : Annulez n’importe quelle modification à tout moment
  • Installation et configuration de Git

    Installation selon votre système d’exploitation

    Windows

  • Téléchargez Git depuis le site officiel : https://git-scm.com/download/win
  • Lancez l’installateur et suivez les étapes (les options par défaut conviennent pour débuter)
  • Vérifiez l’installation en ouvrant le terminal (PowerShell ou Git Bash) et tapez :
git --version

Vous devriez voir quelque chose comme : git version 2.43.0

macOS

Git est souvent préinstallé sur macOS. Pour vérifier :

git --version

Si Git n’est pas installé, la commande vous proposera de l’installer automatiquement, ou installez-le via Homebrew :

brew install git

Linux (Ubuntu/Debian)

sudo apt update
sudo apt install git

Configuration initiale (obligatoire)

Avant votre premier commit, configurez votre identité. Ces informations apparaîtront dans l’historique de chaque modification :

# Votre nom complet
git config --global user.name "Votre Nom"

# Votre email
git config --global user.email "votre.email@example.com"

# Éditeur par défaut (optionnel)
git config --global core.editor "code --wait"  # Pour VS Code

# Vérifier votre configuration
git config --list

L’option --global signifie que cette configuration s’applique à tous vos projets Git sur cet ordinateur.

Les concepts fondamentaux de Git

Les trois zones de Git

Pour comprendre Git, vous devez connaître ses trois zones principales :

  • Working Directory (Répertoire de travail) : Vos fichiers actuels sur lesquels vous travaillez
  • Staging Area (Zone de transit/Index) : Les modifications que vous préparez pour le prochain commit
  • Repository (Dépôt/.git) : L’historique complet de votre projet avec tous les commits
  • Le workflow Git standard suit ce chemin :

    Working Directory → (git add) → Staging Area → (git commit) → Repository
    

    Créer votre premier projet Git

    Initialiser un nouveau dépôt

    Créons un projet simple pour apprendre Git en pratique :

    # Créer un nouveau dossier de projet
    mkdir mon-premier-projet
    cd mon-premier-projet
    
    # Initialiser Git dans ce dossier
    git init
    
    # Vérifier le statut
    git status
    

    La commande git init crée un dossier caché .git qui contient toute la configuration et l’historique de votre projet.

    Créer et suivre des fichiers

    Créons notre premier fichier :

    # Créer un fichier HTML simple
    echo "
    
    
        Mon Premier Projet Git
    
    
        # Bienvenue !
    
    " > index.html
    
    # Vérifier le statut
    git status
    
    

    Git vous indique que index.html est un fichier non suivi (untracked). Pour que Git commence à le suivre, il faut l’ajouter à la staging area :

    # Ajouter le fichier à la staging area
    git add index.html
    
    # Vérifier le statut
    git status
    

    Maintenant, le fichier est prêt à être commité.

    Les commandes Git essentielles

    git status – Votre meilleur ami

    Cette commande affiche l’état actuel de votre dépôt. Utilisez-la constamment :

    git status
    

    Elle vous indique :

  • Sur quelle branche vous êtes
  • Quels fichiers ont été modifiés
  • Quels fichiers sont en staging area
  • Quels fichiers ne sont pas suivis
  • git add – Préparer les modifications

    # Ajouter un fichier spécifique
    git add nom-fichier.js
    
    # Ajouter plusieurs fichiers
    git add fichier1.html fichier2.css
    
    # Ajouter tous les fichiers modifiés
    git add .
    
    # Ajouter tous les fichiers d'un dossier
    git add dossier/
    

    Conseil : Utilisez git add . avec précaution. Il vaut mieux ajouter les fichiers de manière ciblée pour des commits plus propres.

    git commit – Enregistrer vos modifications

    Un commit est comme une photo instantanée de votre projet à un moment précis :

    # Commit avec message court
    git commit -m "Ajout de la page d'accueil"
    
    # Commit avec message détaillé (ouvre votre éditeur)
    git commit
    

    Comment écrire de bons messages de commit ?

    Un bon message de commit aide vos collègues (et vous-même dans 6 mois) à comprendre ce qui a été fait :

  • Utilisez l’impératif : « Ajoute », « Corrige », « Supprime » (pas « Ajouté » ou « Ajout de »)
  • Soyez concis mais descriptif : maximum 50 caractères pour le titre
  • Expliquez le « pourquoi » dans le corps du message si nécessaire
  • Exemples de bons messages :

    git commit -m "Ajoute la validation du formulaire de contact"
    git commit -m "Corrige le bug d'affichage sur mobile"
    git commit -m "Supprime le code mort de l'ancienne API"
    

    Exemples de mauvais messages :

    git commit -m "fix"
    git commit -m "update"
    git commit -m "changements"
    

    git log – Consulter l’historique

    # Afficher l'historique complet
    git log
    
    # Version plus compacte (une ligne par commit)
    git log --oneline
    
    # Afficher les 5 derniers commits
    git log -5
    
    # Voir les modifications de chaque commit
    git log -p
    
    # Historique avec graphe des branches
    git log --graph --oneline --all
    

    git diff – Voir les modifications

    # Voir les modifications non stagées
    git diff
    
    # Voir les modifications en staging area
    git diff --staged
    
    # Comparer avec un commit spécifique
    git diff commit-id
    

    Travailler avec les branches

    Qu’est-ce qu’une branche ?

    Une branche est une ligne de développement indépendante. Par défaut, vous travaillez sur la branche main (anciennement master). Les branches permettent de :

  • Développer de nouvelles fonctionnalités sans toucher au code stable
  • Tester des expérimentations sans risque
  • Travailler sur plusieurs tâches en parallèle
  • Faciliter le code review avant de fusionner
  • Commandes de base pour les branches

    # Lister toutes les branches
    git branch
    
    # Créer une nouvelle branche
    git branch nom-de-la-branche
    
    # Changer de branche
    git checkout nom-de-la-branche
    
    # Créer et basculer vers une nouvelle branche (raccourci)
    git checkout -b nouvelle-fonctionnalite
    
    # Version moderne (Git 2.23+)
    git switch nouvelle-fonctionnalite
    git switch -c nouvelle-fonctionnalite  # créer et basculer
    

    Exemple pratique : Développer une fonctionnalité

    # 1. Créer une branche pour une nouvelle page "À propos"
    git checkout -b page-a-propos
    
    # 2. Créer et modifier le fichier
    echo "# À propos de nous" > about.html
    git add about.html
    git commit -m "Ajoute la page À propos"
    
    # 3. Retourner sur la branche principale
    git checkout main
    
    # 4. Fusionner la branche (merge)
    git merge page-a-propos
    
    # 5. Supprimer la branche devenue inutile
    git branch -d page-a-propos
    

    Gérer les conflits de fusion

    Un conflit survient quand deux branches modifient les mêmes lignes de code. Git ne peut pas décider automatiquement quelle version garder :

    # Git affichera un message de conflit
    # Ouvrez le fichier en conflit, vous verrez :
    
    <<<<<<< HEAD
    # Ma version
    =======
    # Autre version
    >>>>>>> branche-a-fusionner
    
    # Supprimez les marqueurs et choisissez la bonne version
    # Version finale choisie
    
    # Puis marquez le conflit comme résolu
    git add fichier-conflit.html
    git commit -m "Résout le conflit de fusion"
    

    Collaborer avec GitHub

    Git vs GitHub : Quelle différence ?

  • Git : Outil de versioning installé sur votre ordinateur (local)
  • GitHub : Plateforme en ligne pour héberger et partager des projets Git (remote)
  • Autres alternatives à GitHub : GitLab, Bitbucket, Gitea.

    Créer un compte GitHub et votre premier dépôt

  • Allez sur https://github.com et créez un compte gratuit
  • Cliquez sur « New repository » (bouton vert)
  • Nommez votre dépôt : mon-premier-projet
  • Choisissez « Public » ou « Private »
  • Ne cochez PAS « Initialize this repository with a README » (vous avez déjà du code en local)
  • Cliquez sur « Create repository »
  • Lier votre projet local à GitHub

    GitHub vous donne les commandes exactes, qui ressemblent à :

    # Ajouter le dépôt distant (remote)
    git remote add origin https://github.com/votre-username/mon-premier-projet.git
    
    # Vérifier les remotes
    git remote -v
    
    # Renommer la branche principale en "main" (si nécessaire)
    git branch -M main
    
    # Pousser (push) votre code vers GitHub
    git push -u origin main
    

    La première fois, GitHub vous demandera de vous authentifier. Utilisez un Personal Access Token (plus sûr que le mot de passe).

    Workflow collaboratif quotidien

    # 1. Récupérer les dernières modifications
    git pull origin main
    
    # 2. Créer une branche pour votre tâche
    git checkout -b fix-bug-formulaire
    
    # 3. Faire vos modifications et commits
    git add .
    git commit -m "Corrige la validation du formulaire"
    
    # 4. Pousser votre branche vers GitHub
    git push origin fix-bug-formulaire
    
    # 5. Sur GitHub : créer une Pull Request (PR)
    # 6. Après review et approbation : fusionner la PR
    # 7. Supprimer la branche locale
    git checkout main
    git pull origin main
    git branch -d fix-bug-formulaire
    

    Cloner un projet existant

    Pour travailler sur un projet déjà hébergé sur GitHub :

    # Cloner le dépôt
    git clone https://github.com/username/nom-du-projet.git
    
    # Entrer dans le dossier
    cd nom-du-projet
    
    # Vérifier l'historique
    git log --oneline
    

    Commandes Git avancées pour le quotidien

    git stash – Mettre de côté temporairement

    Vous travaillez sur une fonctionnalité, mais vous devez changer de branche d’urgence sans commiter :

    # Sauvegarder vos modifications en cours
    git stash
    
    # Changer de branche et faire votre correctif urgent
    git checkout main
    # ... faire les modifications ...
    
    # Revenir et récupérer votre travail
    git checkout ma-branche
    git stash pop
    
    # Lister les stash
    git stash list
    
    # Appliquer un stash spécifique
    git stash apply stash@{0}
    

    git reset – Annuler des commits

    # Annuler le dernier commit (garde les modifications)
    git reset --soft HEAD~1
    
    # Annuler le dernier commit (supprime les modifications)
    git reset --hard HEAD~1
    
    # Retirer un fichier de la staging area
    git reset fichier.js
    

    Attention : git reset --hard supprime définitivement vos modifications non commitées.

    git revert – Annuler proprement

    Pour annuler un commit déjà poussé sur GitHub (plus sûr que reset) :

    # Créer un nouveau commit qui annule un ancien commit
    git revert commit-id
    

    git cherry-pick – Appliquer un commit spécifique

    # Récupérer un commit d'une autre branche
    git cherry-pick commit-id
    

    Le fichier .gitignore – Ignorer des fichiers

    Certains fichiers ne doivent jamais être versionnés (mots de passe, fichiers temporaires, dépendances) :

    # Créer un fichier .gitignore à la racine du projet
    touch .gitignore
    

    Exemple de contenu pour un projet Node.js :

    # Dépendances
    nodemodules/
    
    # Variables d'environnement (secrets)
    .env
    .env.local
    
    # Fichiers de build
    dist/
    build/
    
    # Logs
    .log
    npm-debug.log
    
    # Système d'exploitation
    .DSStore
    Thumbs.db
    
    # Éditeur
    .vscode/
    .idea/
    

    GitHub propose des templates .gitignore pour différents langages sur https://github.com/github/gitignore

    Bonnes pratiques Git professionnelles

    1. Commitez souvent, petits commits

    Préférez plusieurs petits commits logiques plutôt qu’un énorme commit en fin de journée.

    # Bon : commits atomiques
    git commit -m "Ajoute le composant Header"
    git commit -m "Style le Header avec Tailwind"
    git commit -m "Rend le Header responsive"
    
    # Mauvais : tout en un
    git commit -m "Travail de la journée"
    

    2. Testez avant de commiter

    Assurez-vous que votre code fonctionne avant de commiter :

    # Vérifiez que votre application démarre
    npm run dev
    
    # Lancez les tests (si vous en avez)
    npm test
    
    # Puis commitez
    git commit -m "Ajoute la fonctionnalité X"
    

    3. Utilisez des branches pour chaque fonctionnalité

    Convention de nommage des branches :

    feature/nom-fonctionnalite
    fix/nom-du-bug
    hotfix/correction-urgente
    refactor/amelioration-code
    

    4. Faites des Pull Requests pour le code review

    Ne fusionnez jamais directement dans main. Passez par une Pull Request pour :

  • Faire relire votre code par un collègue
  • Lancer des tests automatiques (CI/CD)
  • Documenter les changements
  • Faciliter la discussion
  • 5. Synchronisez régulièrement

    # Chaque matin, récupérez les dernières modifications
    git checkout main
    git pull origin main
    
    # Mettez à jour votre branche de fonctionnalité
    git checkout ma-branche
    git merge main  # ou : git rebase main
    

    Résoudre les problèmes courants

    Problème : J’ai commité sur la mauvaise branche

    # Annuler le commit (garde les modifications)
    git reset --soft HEAD~1
    
    # Changer de branche
    git checkout bonne-branche
    
    # Recommiter
    git add .
    git commit -m "Votre message"
    

    Problème : J’ai modifié un fichier par erreur

    # Annuler les modifications d'un fichier
    git checkout -- fichier.js
    
    # Ou avec Git 2.23+
    git restore fichier.js
    

    Problème : Git me demande un username/password à chaque push

    Utilisez SSH au lieu de HTTPS :

    # Générer une clé SSH
    ssh-keygen -t ed25519 -C "votre.email@example.com"
    
    # Ajouter la clé à GitHub (Settings > SSH and GPG keys)
    cat ~/.ssh/id_ed25519.pub
    
    # Changer l'URL du remote
    git remote set-url origin git@github.com:username/repo.git
    

    Ressources pour aller plus loin

    Tutoriels interactifs

  • Learn Git Branching (learngitbranching.js.org) : Tutoriel visuel et interactif excellent
  • Git Immersion : Guide pas à pas pour apprendre Git
  • Atlassian Git Tutorial : Documentation complète et bien structurée
  • Aide-mémoire (cheat sheet)

    # Configuration
    git config --global user.name "Nom"
    git config --global user.email "email@example.com"
    
    # Créer et initialiser
    git init
    git clone url
    
    # Workflow de base
    git status
    git add .
    git commit -m "message"
    git push origin main
    git pull origin main
    
    # Branches
    git branch
    git checkout -b nouvelle-branche
    git merge nom-branche
    git branch -d nom-branche
    
    # Historique
    git log --oneline
    git diff
    
    # Annuler
    git reset --soft HEAD~1
    git stash
    git stash pop
    
    # Remote
    git remote -v
    git remote add origin url
    git push -u origin main
    

    Conclusion : Git, votre superpouvoir de développeur

    Git peut sembler intimidant au début, mais c’est un outil que vous utiliserez littéralement tous les jours de votre carrière de développeur. La clé est de pratiquer régulièrement :

  • Commencez par les commandes de base : add, commit, push, pull
  • Créez un projet personnel pour expérimenter sans risque
  • Forcez-vous à utiliser des branches, même seul
  • Lisez les messages d’erreur – ils sont souvent très explicites
  • N’ayez pas peur de faire des erreurs – Git permet presque toujours de revenir en arrière
  • Exercice pratique pour aujourd’hui :

  • Créez un compte GitHub si ce n’est pas déjà fait
  • Initialisez un nouveau projet Git local
  • Créez un fichier README.md décrivant votre projet
  • Faites votre premier commit
  • Poussez votre code sur GitHub
  • Créez une branche, modifiez un fichier, fusionnez la branche
  • Félicitations ! Vous maîtrisez maintenant les fondamentaux de Git. C’est un outil puissant qui vous accompagnera tout au long de votre carrière de développeur.

    Une remarque, un retour ?

    Cet article est vivant — corrections, contre-arguments et retours de production sont les bienvenus. Trois canaux, choisissez celui qui vous convient.