La commande git merge est incontournable pour tout développeur collaborant sur un projet Git. Elle permet de fusionner les branches tout en conservant un historique propre et maîtrisé. Pourtant, mal utilisée, elle peut provoquer des conflits redoutables.
Voici un guide complet et structuré pour comprendre son fonctionnement, apprendre à l’utiliser correctement, et éviter les erreurs les plus courantes.
À retenir :
- git merge fusionne les branches Git tout en préservant l’historique du projet.
- Il est crucial de préparer les branches avant d’exécuter la fusion.
- La gestion des conflits est une étape clef de git merge.
Fusionner des branches avec Git merge pas à pas
« La fusion des branches est l’art de réunir sans effacer. »
Thomas Beaulieu, ingénieur DevOps
Valider les modifications avant la fusion
Avant toute utilisation de git merge, validez toutes les modifications dans vos branches. Cela évite les surprises en cours de route. Une commande simple suffit :
git status
git add .
git commit -m « Préparation avant merge »
Se positionner sur la branche cible
Pour utiliser git merge, placez-vous sur la branche dans laquelle vous souhaitez intégrer les changements. Par exemple, pour fusionner « feature » dans « main » :
git checkout main
# ou
git switch main
C’est ici que la fusion sera opérée. La branche main recevra les modifications de feature.
Mise à jour et exécution de la commande git merge
« Avant de fusionner, mettez vos connaissances et vos branches à jour. »
Claire Vidal, formatrice Git
Mettre à jour la branche cible
Avant d’exécuter git merge, il est préférable d’avoir une branche à jour avec le dépôt distant :
git fetch
git pull
Cela réduit les risques de conflits dus à des divergences non anticipées entre les branches.
Lancer la fusion avec Git merge
La commande est simple et directe. Elle suit cette syntaxe : git merge feature
Git tentera alors de fusionner les modifications de la branche feature dans main. Deux types de fusion sont possibles :
- Fast-forward : si aucune divergence, Git avance simplement le pointeur de branche.
- Three-way merge : si les deux branches ont évolué, Git crée un commit de fusion.
Résoudre les conflits lors d’un git merge
« Un conflit bien géré est une fusion réussie. »
Mehdi Laurent, lead développeur
Identifier et résoudre les conflits
Git vous avertira si des conflits de fusion surviennent. Les fichiers conflictuels apparaîtront ainsi :
<<<<<<< HEAD
Contenu de la branche principale
=======
Contenu de la branche feature
>>>>>>> feature
Dans ce cas, choisissez la version à conserver, éditez le fichier, puis :
git add <fichier_conflit>
git commit -m « Résolution de conflit »
Supprimer la branche fusionnée
Une fois la fusion effectuée, la branche source devient souvent inutile. Supprimez-la pour garder un dépôt propre : git branch -d feature
Tableau des commandes essentielles pour utiliser git merge
| Étape | Commande Git | Utilité principale |
|---|---|---|
| Vérifier les modifications | git status | Vérifie les fichiers en attente de commit |
| Ajouter les fichiers | git add . | Ajoute tous les fichiers au suivi Git |
| Enregistrer les changements | git commit -m « message » | Valide les modifications |
| Aller sur la branche cible | git checkout main ou git switch main | Se positionner sur la branche de destination |
| Mettre à jour la branche | git pull | Synchroniser avec le dépôt distant |
| Lancer la fusion | git merge feature | Fusionner la branche feature dans main |
| Résoudre un conflit | Éditer + git add + git commit | Gérer les conflits et finaliser la fusion |
| Supprimer une branche | git branch -d feature | Nettoyer les branches obsolètes |
Intégrer git merge dans un flux de travail collaboratif
« Maîtriser Git, c’est avant tout maîtriser son équipe. »
Audrey Thomas, cheffe de projet web
Bonnes pratiques pour travailler en équipe
Utiliser git merge dans un environnement collaboratif demande rigueur et coordination :
- Toujours communiquer les fusions prévues pour éviter les conflits simultanés.
- Préférer des branches courtes (feature branches) pour limiter les écarts avec la branche principale.
- Effectuer des revues de code avant chaque fusion dans main pour garantir la stabilité du code.
Différence entre git merge et rebase
Beaucoup de développeurs hésitent entre git merge et git rebase. Le premier conserve l’historique des branches, le second le réécrit. Pour des projets collaboratifs, git merge est souvent recommandé car il est plus transparent.
Et vous, comment gérez-vous vos fusions avec git merge ? Partagez vos conseils ou vos mésaventures en commentaire !
Modifié le 29/07/2025