Débuter avec Git : commits, branches et premier repo
🎯 Objectifs
- Initialiser un dépôt Git
- Créer des commits clairs et atomiques
- Créer et naviguer entre les branches
- Fusionner des branches (merge)
- Explorer l'historique d'un projet
📖 Pourquoi Git ?
On a tous connu ça :
projet_v1.zip
projet_v2.zip
projet_v2_final.zip
projet_v2_final_VRAIMENT_FINAL.zip
projet_v2_final_VRAIMENT_FINAL(2).zipGit résout ce problème - et bien plus.
| Avantage | Description |
|---|---|
| Historique complet | Chaque modification est enregistrée avec date, auteur et message |
| Collaboration | Plusieurs développeurs travaillent sur le même projet sans conflits |
| Branches | Développer des fonctionnalités en parallèle, isolées du code principal |
| Revenir en arrière | Annuler une erreur en revenant à n'importe quel état précédent |
📖 Concepts Clés
Repository (dépôt) - Un dossier suivi par Git. Le sous-dossier caché .git/ contient tout l'historique.
Commit - Une capture instantanée (snapshot) de vos fichiers à un moment donné.
commit a3f7b2c (HEAD -> main)
Author: Équipe DevOps Facile <contact@devopsfacile.fr>
Date: Tue Apr 15 10:30:00 2026
feat: ajouter la page d'accueilBranch - Une ligne de développement indépendante.
main: A ──── B ──── C
\
feature: D ──── E🔧 Installation
Linux (Debian/Ubuntu) :
sudo apt update && sudo apt install gitmacOS :
brew install gitWindows : Télécharger depuis git-scm.com
Configuration initiale (obligatoire) :
git config --global user.name "Votre Nom"
git config --global user.email "votre@email.com"
git config --global init.defaultBranch main💡 Ces informations apparaîtront dans chaque commit que vous créez.
🔧 Workflow de Base
Initialiser un dépôt
mkdir mon-projet && cd mon-projet
git initVérifier le statut
git statusGit indique les fichiers modifiés, ajoutés ou non suivis.
Ajouter et committer
# Ajouter un fichier spécifique
git add index.html
# Ajouter tous les fichiers modifiés
git add .
# Créer un commit
git commit -m "feat: ajouter la page d'accueil"💡
git addplace les fichiers dans la staging area (zone de préparation).git commitenregistre le snapshot.
Consulter l'historique
# Historique détaillé
git log
# Historique compact (recommandé)
git log --onelinea3f7b2c feat: ajouter la page d'accueil
1d4e8f0 init: initialiser le projetModifier et comparer
# Voir les modifications non committées
git diff
# Voir les modifications staged
git diff --staged🌳 Branches
Créer une branche
# Créer et basculer sur la branche
git checkout -b feature/login
# Syntaxe moderne (équivalent)
git switch -c feature/loginLister les branches
git branch main
* feature/loginFusionner une branche
# Revenir sur main
git checkout main
# Fusionner la branche
git merge feature/login
# Supprimer la branche fusionnée
git branch -d feature/login⚠️ Si
mainn'a pas bougé, Git fait un fast-forward (pas de commit de merge). Sinon, il crée un merge commit qui combine les deux historiques.
📄 .gitignore
Le fichier .gitignore indique à Git les fichiers à ignorer (dépendances, builds, secrets…).
# Dépendances
node_modules/
# Build
dist/
.next/
# Environnement
.env
.env.local
# OS
.DS_Store
Thumbs.db💡 Créez le
.gitignoreavant le premier commit pour ne jamais tracker ces fichiers.
📝 Bonnes Pratiques - Messages de Commit
Format recommandé :
type: description courte| Type | Usage |
|---|---|
feat | Nouvelle fonctionnalité |
fix | Correction de bug |
docs | Documentation |
refactor | Refactoring sans changement fonctionnel |
style | Formatage, points-virgules manquants |
test | Ajout ou modification de tests |
Exemples :
feat: ajouter le formulaire de connexion
fix: corriger le calcul du panier
docs: mettre à jour le README
refactor: simplifier la validation email💡 Ce format s'appelle Conventional Commits - adopté par la majorité des projets open source.
📚 Commandes Essentielles
| Commande | Description |
|---|---|
git init | Initialiser un dépôt |
git status | Voir l'état des fichiers |
git add . | Ajouter tous les fichiers au staging |
git commit -m "msg" | Créer un commit |
git log --oneline | Historique compact |
git diff | Voir les modifications |
git branch | Lister les branches |
git checkout -b nom | Créer et basculer sur une branche |
git merge nom | Fusionner une branche |
git branch -d nom | Supprimer une branche |
🎯 Points Clés
- Un commit = un snapshot de votre projet à un instant T
- Committez souvent, avec des messages clairs et descriptifs
- Utilisez des branches pour isoler chaque fonctionnalité
- Le
.gitignoreprotège contre le tracking de fichiers indésirables git statusetgit log --onelinesont vos meilleurs alliés au quotidien
🏋️ Exercices du module
- Initialiser votre premier repository Git - Créer un dépôt, premiers commits
- Créer et Merger des Branches - Créer, basculer et fusionner des branches
- Résoudre les Conflits de Fusion - Détecter et résoudre les conflits
- Synchroniser avec GitHub - push, pull, remote
- Collaboration en Équipe - Fork, pull requests, revues de code
- Projet Capstone : Versionner un portfolio DevOps de A à Z - Init, commits, branches, merge, conflit, historique et GitHub
📚 Ressources
- Documentation officielle Git
- Git - The Simple Guide
- Learn Git Branching (interactif)
- Conventional Commits
🚀 Prochaines étapes
Vous savez versionner votre code localement. Apprenez à collaborer :
- Collaborer efficacement avec Git et GitHub - Collaboration GitHub, workflows et résolution de conflits