Fusionner des Branches et Résoudre les Conflits
Fusionner des branches : git merge
Section titled “Fusionner des branches : git merge”Une fois votre travail validé sur une branche secondaire (comme feature-contact), vous souhaitez réintégrer ces changements dans la branche principale (main). Cette opération s’appelle une fusion (merge).
Pour fusionner, vous devez toujours vous placer sur la branche qui va recevoir les modifications, puis appeler la branche qui contient le nouveau code.
gitGraph
commit id: "Initial commit"
branch feature-contact
checkout feature-contact
commit id: "Formulaire de contact"
checkout main
merge feature-contact id: "Fusion de feature-contact"
Exercice Pratique : Fusionner vos modifications
Section titled “Exercice Pratique : Fusionner vos modifications”Suivez les instructions du simulateur interactif pour fusionner la branche feature-contact dans main et observez le résultat final :
Commandes à exécuter
Qu’est-ce qu’un conflit ?
Section titled “Qu’est-ce qu’un conflit ?”Un conflit survient lorsque deux branches ont modifié la même ligne du même fichier de manière différente, et que vous tentez de les fusionner. Git ne sait pas quelle version choisir et vous demande de trancher manuellement.
Exemple de marqueurs de conflit
Section titled “Exemple de marqueurs de conflit”Lorsque vous ouvrez un fichier en conflit, Git y insère des marqueurs spéciaux :
<<<<<<< HEAD<h1>Bienvenue sur HashCode Workshops</h1>=======<h1>Bienvenue sur notre académie technique</h1>>>>>>>> feature-titreComprendre les marqueurs :
<<<<<<< HEAD: Début de la version présente sur votre branche actuelle (où vous vous trouvez, ex:main).=======: Séparateur entre les deux versions en conflit.>>>>>>> feature-titre: Fin de la version présente sur la branche que vous tentez de fusionner.
Comment résoudre un conflit ?
Section titled “Comment résoudre un conflit ?”Ne paniquez pas, la résolution est simple si vous suivez ces étapes :
- Ouvrez le fichier en conflit dans votre éditeur (ex: VS Code).
- Setup / Analyse des deux propositions et choisissez celle à conserver (ou écrivez une combinaison des deux).
- Supprimez les lignes de marqueurs (
<<<<<<<,=======,>>>>>>>). - Enregistrez le fichier.
- Ajoutez le fichier résolu à la Staging Area :
Terminal window git add <nom-du-fichier> - Finalisez le commit de fusion :
Terminal window git commit -m "Résolution du conflit de titre"
Fiches de révision
Section titled “Fiches de révision”Entraînez-vous à retenir les concepts clés en cliquant sur les cartes ci-dessous :
Quelle est la différence entre un fast-forward et un merge à trois branches ?
Cliquer pour révéler la réponseLe fast-forward déplace simplement le pointeur de la branche quand il n'y a pas de divergences. Le merge à trois branches (3-way) crée un commit de fusion supplémentaire lorsque les branches ont divergé.
Cliquer pour voir la questionQuand un conflit de fusion survient-il ?
Cliquer pour révéler la réponseUn conflit survient lorsque deux branches ont modifié la même ligne du même fichier de manière différente et que Git ne peut pas choisir automatiquement quelle version conserver.
Cliquer pour voir la questionQuels sont les trois marqueurs de conflit insérés par Git ?
Cliquer pour révéler la réponse<<<<<<< HEAD (version actuelle), ======= (séparateur), >>>>>>> nom-de-branche (version entrante).
Cliquer pour voir la questionQuelles sont les étapes pour résoudre un conflit ?
Cliquer pour révéler la réponseOuvrir le fichier, choisir la version à conserver ou combiner les deux, supprimer les marqueurs, enregistrer, exécuter git add puis git commit.
Cliquer pour voir la questionQuiz Final — Validez vos connaissances
Section titled “Quiz Final — Validez vos connaissances”1. Sur quelle branche devez-vous vous placer AVANT de lancer git merge ?
2. Quand un conflit Git survient-il ?
3. Après avoir résolu un conflit manuellement, quelles commandes devez-vous exécuter ?
Prochaine étape
Section titled “Prochaine étape”Vous maîtrisez Git en local ! Il est temps de passer au niveau supérieur et de connecter votre dépôt local à GitHub pour collaborer avec le monde entier.
Étape suivante : Collaborer sur GitHub