Comment fusionner une branche Git dans une autre
La fusion nécessite deux commandes, mais la direction fait trébucher les gens et Git peut avancer rapidement ou créer une validation de fusion. Voici la séquence exacte, ce que signifie l’avance rapide et quelle option utiliser quand.
Écrit par Kodmora
L'éditeur de logiciels derrière GitTree
- Fusionner
- Branches
- Fusionner les conflits
Sur cette page
Pour fusionner `feature` dans `main`, basculez vers la branche qui reçoit les commits, puis fusionnez l'autre : `git switch main` suivi de `git merge feature`. La branche sur laquelle vous vous trouvez est celle qui change. Si main n'a pas de nouveaux commits, Git l'avance rapidement. Sinon, il crée une validation de fusion et s'arrête en cas de conflit entre les deux parties.
Comment fusionner une branche étape par étape ?
# get the latest
git fetch origin
# go to the branch that receives the work
git switch main
git pull --ff-only
# bring the other branch in
git merge feature/search
# publish it
git pushCommencez avec une arborescence propre : validez ou cachez d'abord. Si vous changez d'avis en cours de route, `git merge --abort` vous ramène.
Dans quelle direction se déroule une fusion ?
git merge X signifie toujours « amener X dans la branche sur laquelle je me trouve ». Ainsi, la fusion de feature dans main se fait à partir de main, tandis que la mise à jour de feature avec le dernier main se fait à partir de feature :
# keep a feature branch up to date
git switch feature/search
git fetch origin
git merge origin/mainQu’est-ce qu’une fusion rapide ?
Si la branche réceptrice n’a pas de commits depuis que l’autre branche l’a quittée, il n’y a rien à combiner. Git déplace le pointeur de branche vers le dernier commit de l’autre branche et n’ajoute aucun commit de fusion. L’histoire reste une ligne droite. Git imprime Fast-forward lorsque cela se produit.
# before
main: A---B
\
feature: C---D
# after a fast-forward merge
main: A---B---C---DLorsque les deux branches ont de nouveaux commits, une avance rapide est impossible, donc Git effectue un commit de fusion avec deux parents. La leçon d'avance rapide et la leçon sur la fusion de branches divergentes montrent les deux en pratique.
Que font --ff-only, --no-ff et --squash ?
| Options | Résultat | Utilisez-le quand |
|---|---|---|
| (aucun) | Avance rapide si possible, sinon un commit de fusion | La plupart des fusions quotidiennes |
--ff-only | Avance rapide ou arrêt avec une erreur | Mise à jour de main depuis sa dépôt distant |
--no-ff | Toujours un commit de fusion | Vous voulez que chaque fonctionnalité soit visible dans l'historique |
--squash | Toutes les modifications sont échelonnées, aucune validation, aucune fusion enregistrée | Vous voulez un commit bien rangé |
git merge --ff-only origin/main
git merge --no-ff feature/search
git merge --squash feature/search
git commit -m "feat(search): quick open"Que se passe-t-il en cas de conflit de fusion ?
Git arrête et marque les fichiers en conflit. Modifiez-les, git add chacun, puis exécutez git commit pour terminer la fusion. Comment résoudre les conflits de fusion explique les marqueurs.
Puis-je prendre automatiquement parti ?
# take their side wherever hunks conflict
git merge -X theirs feature/search
# take our side wherever hunks conflict
git merge -X ours feature/search
# during a merge, take one side of a whole file
git checkout --theirs path/to/file
git add path/to/fileDois-je fusionner ou rebaser ?
La fusion conserve l'historique exactement tel qu'il s'est produit et ne réécrit jamais les validations, il est donc toujours en sécurité sur les branches partagées. Rebase rejoue vos commits au-dessus d'une autre branche en ligne droite, mais il les réécrit, alors conservez-les dans les branches que vous utilisez uniquement. La leçon de fusion ou de rebasement passe en revue les compromis.
Que dois-je faire après la fusion ?
# check that the branch is fully merged
git branch --merged
# delete it locally and on the remote
git branch -d feature/search
git push origin --delete feature/searchComment supprimer une branche couvre le nettoyage. Pour annuler une fusion déjà poussée, consultez comment annuler une validation de fusion.
Comment fusionner une branche dans GitTree
Découvrez la branche réceptrice
Double-cliquez sur la branche qui doit recevoir les commits, telle que
develop.Choisissez la branche à fusionner
Cliquez avec le bouton droit sur l'étiquette de la branche contenant le nouveau travail et choisissez Fusionner… dans…. Vous pouvez également faire glisser une étiquette sur l'autre.
Lire l'aperçu
GitTree vérifie d'abord et vous indique Fusionne sans conflits. ou quels fichiers s'arrêteront en cas de conflit.
Choisissez comment il est enregistré
Sous Enregistrer sous, sélectionnez Avance rapide si possible, sinon une validation de fusion, Toujours une validation de fusion, Avance rapide uniquement ou Écraser les modifications par étapes (pas de validation), puis appuyez sur Fusionner.

Voir fusionner les branches pour chaque option.
Questions fréquemment posées
La fusion supprime-t-elle l’autre branche ?
Non, l’autre branche reste exactement là où elle était. Supprimez-le vous-même lorsque vous n’en avez plus besoin.
Comment fusionner une branche dans main sur GitHub ?
Ouvrez une pull request et appuyez sur Fusionner. Si vous fusionnez localement, appuyez ensuite sur main. La protection des branches peut nécessiter l’itinéraire de demande d’extraction.
Que signifie « Déjà à jour » ?
La branche sur laquelle vous vous trouvez contient déjà tous les commits de l'autre branche, il n'y a donc rien à fusionner. Vérifiez que vous êtes sur la bonne branche et exécutez git fetch si vous attendiez de nouveaux commits à distance.
Que signifie « refuser de fusionner des histoires sans rapport » ?
Les deux branches ne partagent aucun commit commun, souvent parce qu'un référentiel a été initialisé deux fois. Si vous avez vraiment l'intention de les rejoindre, ajoutez --allow-unrelated-histories.
Une fusion de squash est-elle une vraie fusion ?
Un squash place les changements combinés dans l’index sans créer de commit ni de lien de fusion dans l’historique. Vous devez créer le commit. Même ensuite, Git ne considère pas la branche source comme fusionnée ; git branch -d peut donc refuser de la supprimer.
Sources
Les allégations concernant d'autres produits ont été vérifiées par rapport à leurs pages officielles sur 8 novembre 2026. Les prix et les fonctionnalités changent ; les pages des fournisseurs sont la source de vérité.
