Si vous codez sans utiliser Git, vous vivez dangereusement. Pas de versioning, pas de filet de sécurité. Un fichier supprimé par erreur, une modification qui casse tout — et c'est la panique. Git résout ce problème depuis 2005, et GitHub l'a rendu accessible au monde entier. Voici tout ce que vous devez savoir pour démarrer. Pour approfondir, consultez notre article sur API pour les non-techniques : comprendre et utiliser les API simplement. Pour approfondir, consultez notre article sur API REST : comprendre et utiliser les API en 5 minutes. Pour approfondir, consultez notre article sur Apprendre à coder en 2026 : par où commencer ?.
Git, c'est quoi exactement ?
Git est un système de contrôle de version distribué. Concrètement, il enregistre l'historique de chaque modification apportée à vos fichiers. Vous pouvez revenir en arrière à tout moment, comparer des versions, travailler sur des fonctionnalités en parallèle, et collaborer avec d'autres développeurs sans marcher sur les pieds de personne.
Créé par Linus Torvalds (oui, le créateur de Linux) en 2005, Git est né d'une frustration avec les outils de versioning existants. Torvalds voulait quelque chose de rapide, distribué et capable de gérer un projet aussi massif que le noyau Linux. Le résultat ? Un outil qui est devenu le standard absolu de l'industrie.
Pour approfondir, consultez notre article : API REST : comprendre et utiliser les API en 5 minutes.
"Distribué" signifie que chaque développeur possède une copie complète de l'historique du projet sur sa machine. Pas besoin d'être connecté à un serveur central pour travailler. Vous pouvez commiter, créer des branches et naviguer dans l'historique même sans connexion internet.
- Installer Git sur votre machine et configurer votre nom et email
- Créer votre premier dépôt local avec git init
- Apprendre le cycle de base : add, commit, push
- Créer un compte GitHub et connecter votre dépôt local au remote
- Maîtriser les branches et les pull requests pour le travail collaboratif
Et GitHub ?
GitHub est une plateforme d'hébergement de dépôts Git dans le cloud. C'est aussi un réseau social pour développeurs, un outil de gestion de projet, et un service d'intégration continue — tout ça en un. Racheté par Microsoft en 2018 pour 7,5 milliards de dollars, GitHub héberge plus de 200 millions de dépôts en 2026.
Voir également : Apprendre à coder en 2026 : par où commencer ?.
Il existe des alternatives (GitLab, Bitbucket, Gitea), mais GitHub reste de loin le plus populaire, notamment grâce à son écosystème (GitHub Actions, GitHub Pages, GitHub Copilot) et sa communauté open source massive.
Important : Git et GitHub sont deux choses distinctes. Git est le logiciel de versioning que vous installez sur votre machine. GitHub est le service en ligne qui héberge vos dépôts Git. Vous pouvez utiliser Git sans GitHub, mais pas GitHub sans Git.
Installer et configurer Git
Sur macOS, Git est souvent pré-installé. Sinon, installez-le via Homebrew : brew install git. Sur Windows, téléchargez Git for Windows depuis git-scm.com. Sur Linux (Ubuntu/Debian) : sudo apt install git.
Une fois installé, configurez votre identité :
git config --global user.name "Votre Nom"git config --global user.email "votre@email.com"
Ces informations seront associées à chaque commit que vous ferez. Utilisez la même adresse email que celle de votre compte GitHub pour que vos contributions soient correctement liées à votre profil.
Les concepts fondamentaux
Le dépôt (repository)
Un dépôt Git est simplement un dossier dont l'historique est suivi par Git. Pour transformer n'importe quel dossier en dépôt Git : git init. Cette commande crée un sous-dossier caché .git qui contient tout l'historique et la configuration.
Les trois zones de Git
C'est le concept le plus important à comprendre. Git organise vos fichiers en trois zones :
Le répertoire de travail (working directory) : c'est votre dossier de projet, là où vous éditez vos fichiers normalement.
La zone de staging (index) : une zone intermédiaire où vous préparez les modifications qui seront incluses dans le prochain commit. C'est comme un brouillon de votre prochain snapshot.
Le dépôt local (.git) : l'historique complet de tous vos commits, stocké dans le dossier .git.
Le flux typique : vous modifiez des fichiers (working directory) → vous les ajoutez au staging (git add) → vous commitez (git commit).
Le commit
Un commit est un snapshot de votre projet à un instant T. Il contient les modifications apportées, un message descriptif, l'auteur, la date et un identifiant unique (hash SHA-1). C'est l'unité de base de l'historique Git.
Un bon message de commit est court, descriptif et commence par un verbe à l'impératif : "Ajouter la page de contact", "Corriger le bug d'authentification", "Refactorer le module de paiement". Évitez les messages vagues comme "fix" ou "update".
Les branches
Les branches sont probablement la fonctionnalité la plus puissante de Git. Une branche est une ligne de développement indépendante. Par défaut, vous travaillez sur la branche main (anciennement master).
Quand vous créez une nouvelle branche, vous créez une copie de l'état actuel du projet. Vous pouvez y apporter des modifications sans affecter la branche principale. Une fois satisfait, vous fusionnez (merge) votre branche dans main.
Ce mécanisme permet à plusieurs développeurs de travailler simultanément sur des fonctionnalités différentes, sans conflit.
Les commandes essentielles
Initialiser et cloner
git init — Créer un nouveau dépôt Git dans le dossier courant.
git clone URL — Copier un dépôt distant (par exemple depuis GitHub) sur votre machine.
Travailler au quotidien
git status — Voir l'état de vos fichiers (modifiés, en staging, non suivis). C'est la commande que vous utiliserez le plus.
git add fichier.txt — Ajouter un fichier au staging. git add . ajoute tous les fichiers modifiés.
git commit -m "Message du commit" — Créer un commit avec les fichiers en staging.
git log — Afficher l'historique des commits. git log --oneline pour une version compacte.
git diff — Voir les modifications non encore en staging.
Travailler avec des branches
git branch nom-branche — Créer une nouvelle branche.
git checkout nom-branche — Basculer sur une branche. (Ou git switch nom-branche avec les versions récentes de Git.)
git checkout -b nom-branche — Créer ET basculer sur une nouvelle branche en une seule commande.
git merge nom-branche — Fusionner une branche dans la branche courante.
git branch -d nom-branche — Supprimer une branche (après fusion).
Travailler avec GitHub
git remote add origin URL — Lier votre dépôt local à un dépôt GitHub.
git push -u origin main — Envoyer vos commits vers GitHub. Le -u configure le tracking pour les prochains push.
git pull — Récupérer les dernières modifications depuis GitHub et les fusionner.
git fetch — Récupérer les modifications sans les fusionner (utile pour inspecter avant de merger).
Le workflow GitHub Flow
Le modèle le plus simple et le plus utilisé pour collaborer :
1. Créer une branche depuis main : git checkout -b feature/ma-fonctionnalite
2. Travailler et commiter sur cette branche.
3. Pousser la branche sur GitHub : git push -u origin feature/ma-fonctionnalite
4. Ouvrir une Pull Request (PR) sur GitHub.
5. L'équipe review le code, commente, suggère des modifications.
6. Une fois approuvée, la PR est fusionnée dans main.
7. Supprimer la branche.
Ce workflow est élégant parce qu'il garde la branche main toujours propre et déployable. Chaque fonctionnalité vit dans sa propre branche jusqu'à ce qu'elle soit prête.
Gérer les conflits
Les conflits surviennent quand deux personnes modifient la même partie d'un même fichier. Git ne peut pas deviner quelle version garder — il vous demande de trancher.
Concrètement, Git marque les zones conflictuelles dans le fichier avec des marqueurs spéciaux. Vous devez éditer le fichier, choisir le code à garder, supprimer les marqueurs, puis commiter le résultat.
Les conflits font peur aux débutants, mais ils sont en réalité assez simples à résoudre une fois qu'on comprend le mécanisme. Et avec de bonnes pratiques (branches courtes, merges fréquents), ils deviennent rares.
Le fichier .gitignore
Certains fichiers ne doivent pas être versionnés : fichiers de configuration locale, dépendances (node_modules), fichiers compilés, secrets et clés API. Le fichier .gitignore à la racine du projet liste les patterns à ignorer.
Exemple typique pour un projet Node.js :
node_modules/.envdist/*.log
GitHub propose des templates .gitignore pour la plupart des langages et frameworks sur github.com/github/gitignore.
Les fonctionnalités GitHub à connaître
Issues : pour tracker les bugs, les fonctionnalités à développer, les idées. C'est votre backlog.
Pull Requests : le cœur de la collaboration. Chaque modification passe par une PR avec review de code.
GitHub Actions : CI/CD intégré. Automatisez les tests, le déploiement, la vérification du code à chaque push.
GitHub Pages : hébergement gratuit de sites statiques directement depuis un dépôt.
GitHub Copilot : assistant IA qui suggère du code en temps réel dans votre éditeur.
Bonnes pratiques pour débutants
Commitez souvent. Des petits commits fréquents valent mieux que de gros commits rares. Chaque commit devrait représenter une modification logique et cohérente.
Écrivez de bons messages de commit. Votre futur vous (et vos collègues) vous remercieront. Un bon message explique le "pourquoi", pas le "quoi".
Ne commitez jamais de secrets. Clés API, mots de passe, tokens — jamais dans le dépôt. Utilisez des variables d'environnement et un fichier .env ignoré par Git.
Utilisez des branches. Même si vous travaillez seul. C'est une habitude qui vous sauvera quand vos projets deviendront plus complexes.
Faites des pull depuis main régulièrement. Plus votre branche diverge de main, plus le merge sera compliqué.
Apprenez à utiliser git stash. Cette commande met de côté vos modifications en cours sans les commiter. Pratique quand vous devez changer de branche rapidement.
| Commande Git | Usage | Exemple |
|---|---|---|
| git clone | Copier un dépôt | git clone https://url.git |
| git add | Préparer les fichiers | git add fichier.js |
| git commit | Enregistrer un snapshot | git commit -m "message" |
| git push | Envoyer au distant | git push origin main |
Aller plus loin
Une fois les bases maîtrisées, explorez le rebase interactif pour nettoyer votre historique, les hooks Git pour automatiser des vérifications avant chaque commit, et les submodules pour intégrer des dépôts dans d'autres dépôts.
Git est un outil profond avec une courbe d'apprentissage qui ne s'arrête jamais vraiment. Mais les 20 % de commandes que nous avons couvertes ici représentent 80 % de ce que vous utiliserez au quotidien. Maîtrisez-les, et vous aurez une base solide pour tout le reste.