Pipelines CI/CD en 2025 : GitHub Actions, GitLab CI et Jenkins
Guide complet des pipelines CI/CD en 2025 : comparaison GitHub Actions, GitLab CI et Jenkins avec meilleures pratiques et exemples concrets.
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.
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.
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.
https://git-scm.com/download/wingit --version
Vous devriez voir quelque chose comme : git version 2.43.0
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
sudo apt update
sudo apt install git
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.
Pour comprendre Git, vous devez connaître ses trois zones principales :
Le workflow Git standard suit ce chemin :
Working Directory → (git add) → Staging Area → (git commit) → Repository
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é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.
Cet article est vivant — corrections, contre-arguments et retours de production sont les bienvenus. Trois canaux, choisissez celui qui vous convient.