Menu
Coddy logo textTech

Git Merge

Dernière mise à jour

git merge intègre les commits d'une autre branche dans la branche courante. Lorsque la branche courante n'a pas divergé, Git effectue un fast-forward - il se contente d'avancer le pointeur. Lorsque les deux branches ont de nouveaux commits, Git crée un merge commit qui relie les deux historiques. Contrairement au rebase, le merge préserve l'historique exact des deux branches.

Essayez ceci dans le terminal playground - un vrai shell dans votre navigateur, rien à installer.

Syntaxe

CommandWhat it does
git merge featureFusionne feature dans la branche courante
git merge --no-ff featureCrée toujours un merge commit
git merge --ff-only featureNe fusionne que si un fast-forward est possible
git merge --squash featureRegroupe les commits de la branche en un seul
git merge --abortAnnule une fusion en conflit

Fast-forward vs merge commit

ScenarioFast-forwardMerge commit (--no-ff)
Crée un nouveau commitNonOui
Conserve une trace de la brancheNonOui
Se produit quandLa branche courante n'a pas divergéLes deux branches ont de nouveaux commits

Résoudre un conflit de fusion

Lorsque les deux branches ont modifié les mêmes lignes, Git s'interrompt.

StepCommandResult
1Modifiez les fichiers en conflitChoisissez les bonnes lignes, supprimez les marqueurs
2git add <file>Marque le conflit comme résolu
3git commitTermine la fusion

FAQ git merge

Comment fusionner une branche dans une autre avec Git ?
Basculez sur la branche dans laquelle vous voulez fusionner (par exemple git switch main), puis exécutez git merge feature. Git combine les commits de feature dans main, soit par fast-forward, soit en créant un merge commit si les deux branches ont divergé.
Quelle est la différence entre un fast-forward et un merge commit ?
Un fast-forward se produit lorsque votre branche courante n'a pas bougé depuis que l'autre branche s'est séparée - Git fait simplement glisser le pointeur vers l'avant, sans nouveau commit. Un merge commit est créé lorsque les deux branches ont de nouveaux commits, reliant leurs historiques. Utilisez --no-ff pour toujours créer un merge commit, ou --ff-only pour exiger un fast-forward.
Comment résoudre un conflit de fusion ?
Lorsqu'une fusion entre en conflit, Git marque les sections en conflit dans les fichiers concernés avec les marqueurs <<<<<<<, ======= et >>>>>>>. Modifiez chaque fichier pour conserver le contenu correct et supprimer les marqueurs, puis faites git add sur les fichiers résolus et git commit pour terminer la fusion.
Comment annuler ou abandonner une fusion ?
Si la fusion est toujours en cours (conflits non résolus), exécutez git merge --abort pour l'annuler et restaurer l'état d'avant la fusion. Si la fusion est déjà terminée en local, git reset --hard ORIG_HEAD ramène la branche à sa position d'avant la fusion (contrairement à HEAD~1, c'est aussi correct après un fast-forward - mais cela supprime le travail non validé). Si la fusion est poussée, utilisez git revert -m 1 <merge-hash>.
Puis-je m'entraîner en ligne ?
Oui. Ouvrez le terminal playground pour exécuter git merge dans un vrai shell dans votre navigateur - rien à installer. Le cours Git interactif et gratuit de Coddy couvre aussi la fusion et la résolution de conflits étape par étape.
Coddy programming languages illustration

Apprenez Git avec Coddy

COMMENCER