Fusion à trois branches
Fait partie de la section Gestion de versions du Journey Terminal de Coddy. Leçon 36 sur 58.
Si les deux branches ont avancé indépendamment, Git ne peut pas simplement effectuer une mise à jour accélérée. Il réalise plutôt une fusion à trois branches : il examine l’ancêtre commun et les extrémités des deux branches, puis produit un nouveau commit qui les combine.
Ce nouveau commit est le commit de fusion. Il possède deux parents, un provenant de chaque branche :
git switch main
git merge feature -m "Merge feature"L'option -m fournit directement le message de validation de fusion, ainsi Git n'ouvre pas d'éditeur.
La plupart du temps, Git peut combiner automatiquement les modifications des deux branches, tant qu'elles concernent des parties différentes des fichiers. Les conflits ne surviennent que lorsque les deux branches ont modifié les mêmes lignes, ce qui est le sujet de la prochaine leçon.
Défi
MoyenVous commencez dans un dossier vierge avec top.txt (contenu : a) et bottom.txt (contenu : b).
Initialisez le dépôt, effectuez un premier commit, puis :
- Créez une branche à partir de la branche actuelle nommée
featureet ajoutez la ligneaddedàtop.txt; effectuez un commit. - Passez à
mainet ajoutez la ligneaddedàbottom.txt; effectuez un commit. - Fusionnez
featuredansmainavec le messageMerge feature.
Affichez le nombre de commits accessibles depuis HEAD à l’aide de git rev-list --count HEAD. Le nombre attendu est 4 (initial + feature + main + merge).
Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Gestion de versions
4Inspecter les modifications
Git DiffDiff des modifications indexéesGit ShowRécapitulatif - Travail de détective2Premiers pas
Initialiser un dépôtLe dossier .gitConfigurer votre identitéÉtat de GitRécapitulatif - Premier dépôt5Ignorer des fichiers
Pourquoi ignorer des fichiersModèles GitignoreVérifier les règles d’exclusionRécapitulatif - Dépôt propre8Fusion
Qu’est-ce qu’une fusionFusion fast-forwardFusion à trois branchesConflits de fusionRésoudre un conflitRécapitulatif - Maître de la fusion11Projet avec une branche de fonctionnalité
Vue d’ensemble du projetInitialiser main3Suivi des modifications
La zone de préparationGit AddGit CommitModifier un fichier suiviGit LogRécapitulatif - Premiers commits6Projet de site de recettes
Vue d’ensemble du projetInitialiser et ignorerEntraînez-vous par vous-même : Playground Terminal