Niveau 1 — Débutant : les fondations de Git
Git est un système de contrôle de version. Concrètement, il enregistre chaque modification de ton code dans un historique, comme des points de sauvegarde dans un jeu vidéo. Si tu casses quelque chose, tu peux revenir en arrière. Si tu travailles en équipe, tout le monde peut modifier le code sans écraser le travail des autres. Voici les cinq commandes pour commencer.
git init — Créer un dépôt
Tout projet Git commence par git init. Cette commande crée un dossier caché .git/ qui contient tout l'historique de ton projet. Tu ne touches jamais à ce dossier directement — Git s'en occupe.
git add — Le staging area
Avant de sauvegarder, tu dois dire à Git quels fichiers inclure. C'est le rôle du staging area (zone de préparation). Pense à un panier de courses : tu y places ce que tu veux acheter avant de passer en caisse. git add place un fichier dans ce panier.
git commit — Sauvegarder un instantané
git commit prend tout ce qui est dans le staging area et crée un instantané (snapshot) permanent. Chaque commit a un identifiant unique (un hash comme a1b2c3d) et un message descriptif. C'est ton point de sauvegarde.
git status — Lire l'état du projet
C'est la commande que tu utiliseras le plus souvent. git status te montre quels fichiers ont été modifiés, lesquels sont dans le staging area, et lesquels ne sont pas encore suivis par Git. En cas de doute, lance git status.
git log — Naviguer dans l'historique
git log affiche la liste des commits du plus récent au plus ancien. Avec l'option --oneline, tu obtiens une vue compacte parfaite pour repérer rapidement un commit. C'est ton journal de bord.
Tu maîtrises les cinq commandes de base ? Parfait. Passons aux branches — c'est là que Git devient vraiment puissant.
Niveau 2 — Intermédiaire : branches et collaboration
Les branches permettent de travailler sur plusieurs fonctionnalités en parallèle sans se marcher dessus. Imagine un arbre : le tronc est ta branche main, et chaque branche est une fonctionnalité en cours de développement. Quand elle est prête, tu la fusionne dans le tronc.
git branch / git switch — Créer et naviguer
git branch nom crée une nouvelle branche. git switch nom te déplace dessus (tu verras aussi l'ancienne syntaxe git checkout, mais switch est plus clair). Chaque branche est un espace de travail isolé.
git merge — Fusionner une branche
Quand ta fonctionnalité est terminée, tu retournes sur main et tu fusionne ta branche avec git merge. Si personne n'a modifié les mêmes fichiers, Git fait une fusion en avance rapide (fast-forward) — c'est automatique et propre.
Conflits de fusion : comprendre et résoudre
Quand deux branches modifient la même ligne du même fichier, Git ne peut pas deviner quelle version garder. Il te signale un conflit. Pas de panique : Git marque les zones en conflit dans le fichier avec des balises <<<<<<< et >>>>>>>. Tu choisis la bonne version, tu supprimes les balises, puis tu fais un add + commit.
git push / git pull — Synchroniser avec un dépôt distant
git push envoie tes commits vers un serveur distant (GitHub, GitLab…). git pull récupère les commits des autres et les fusionne dans ta branche. C'est le duo de base de la collaboration.
git clone — Récupérer un projet existant
git clone copie un dépôt distant sur ta machine, avec tout son historique. C'est la première commande que tu lances quand tu rejoins un projet existant.
Tu sais créer des branches, fusionner et collaborer ? Tu as déjà un niveau opérationnel pour travailler en équipe. Pour aller plus loin, voici les outils des pros.
Niveau 3 — Avancé : les outils des pros
Ces commandes ne sont pas indispensables au quotidien, mais elles te sortiront de situations compliquées et te feront gagner un temps précieux. C'est ce qui distingue quelqu'un qui utilise Git de quelqu'un qui le maîtrise.
git rebase — Réécrire l'historique
git rebase prend les commits de ta branche et les rejoue par-dessus une autre branche. Résultat : un historique linéaire, sans commits de fusion. C'est plus propre, mais à utiliser uniquement sur des branches que tu n'as pas encore partagées (push).
git stash — Mettre de côté temporairement
Tu travailles sur une fonctionnalité mais tu dois changer de branche en urgence ? git stash met tes modifications de côté dans une pile temporaire. Tu changes de branche, tu fais ce que tu as à faire, puis git stash pop restaure ton travail.
git cherry-pick — Copier un commit précis
Besoin de récupérer un seul commit d'une autre branche sans tout fusionner ? git cherry-pick copie exactement ce commit dans ta branche actuelle. Idéal pour appliquer un correctif ciblé.
git reflog — Le filet de sécurité
Tu as fait un reset un peu trop agressif et tu penses avoir perdu des commits ? git reflog enregistre tout ce que Git a fait, même les opérations destructives. Tu peux retrouver n'importe quel état précédent et y revenir. C'est le Ctrl+Z ultime de Git.
git reset / git revert — Annuler des modifications
Deux approches pour annuler. git reset déplace le pointeur de branche en arrière — les commits disparaissent de l'historique (utilise --soft pour garder les fichiers). git revert crée un nouveau commit qui annule les changements — l'historique reste intact. En équipe, privilégie revert.
git bisect — Trouver le commit fautif
Un bug est apparu mais tu ne sais pas quand ? git bisect fait une recherche dichotomique dans ton historique. Tu lui donnes un commit "bon" et un commit "mauvais", et Git te fait tester le commit du milieu. En quelques étapes, tu trouves exactement le commit qui a introduit le bug.
Voilà, tu as maintenant une vue complète des commandes Git essentielles, du niveau débutant au niveau avancé. La clé pour progresser : pratiquer régulièrement. Crée un projet de test et expérimente chaque commande.