Résoudre manuellement les conflits de fusion
Apprenez à identifier et à résoudre manuellement les conflits de fusion qui apparaissent lors de l’intégration de branches divergentes.
Résoudre manuellement les conflits de fusion est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.
Comprendre les conflits de fusion
Bienvenue dans le monde des conflits de fusion ! Ne vous inquiétez pas : ils font normalement partie de la collaboration avec Git. Un conflit de fusion se produit lorsque Git ne parvient pas à déterminer automatiquement comment combiner les modifications de deux branches différentes.
Cela se produit généralement lorsque deux branches modifient de façons différentes les mêmes lignes du même fichier, ou lorsqu’une branche supprime un fichier qu’une autre branche a modifié.
Pourquoi les conflits apparaissent
Git est extrêmement efficace pour fusionner automatiquement la plupart des modifications. Cependant, il a besoin de l’aide d’une personne lorsqu’il rencontre une ambiguïté. Voici quelques situations courantes :
- Même ligne, modifications différentes : deux personnes modifient différemment exactement la même ligne de code.
- L’un supprime, l’autre modifie : une branche supprime un fichier tandis qu’une autre le modifie.
- Renommer ou modifier : un fichier est renommé dans une branche et modifié dans une autre.
Détecter les conflits avec Git
Lorsqu’un conflit de fusion se produit, Git ne termine pas automatiquement la fusion. Il interrompt plutôt le processus et vous indique quels fichiers sont en conflit. Vous verrez un message semblable à celui-ci :
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.Utiliser `git status` pour les conflits
Après l’échec d’une fusion automatique, votre dépôt se trouve dans un état de « fusion ». Vous pouvez utiliser git status pour voir quels fichiers sont en conflit. Ces fichiers apparaissent dans la liste des « chemins non fusionnés ».
git statusInterpréter les marqueurs de conflit
Git insère directement dans les fichiers en conflit des marqueurs spéciaux qui indiquent où se trouve le problème. Ces marqueurs vous aident à identifier les différentes versions du code :
<<<<<<< HEAD: indique le début des modifications de votre branche actuelle.=======: sépare les modifications des deux branches.>>>>>>> branch-name: indique la fin des modifications de la branche entrante.
Dans un fichier en conflit
Examinons un exemple. Imaginez que vous avez un fichier hello.txt. Votre branche main l’a modifié en « Hello from main », tandis qu’une branche feature a modifié la même ligne en « Greetings from feature ». Lors de la fusion de feature dans main, le fichier se présentera ainsi :
<<<<<<< HEAD
Hello from main
=======
Greetings from feature
>>>>>>> featureRésoudre manuellement le conflit
Votre tâche consiste à ouvrir le fichier en conflit (par exemple hello.txt) dans votre éditeur de texte. Ensuite, vous modifiez manuellement le fichier pour supprimer les marqueurs de conflit et choisir le contenu souhaité. Vous pouvez combiner des parties, choisir une version ou rédiger un contenu entièrement nouveau.
Dans notre exemple avec hello.txt, si nous voulons conserver les deux messages, nous pouvons le modifier ainsi :
Hello from main and Greetings from feature!Indexer les modifications résolues
Une fois le fichier modifié manuellement et tous les marqueurs de conflit supprimés, vous devez indiquer à Git que le conflit est résolu. Pour cela, vous indexez le fichier avec git add.
Répétez cette opération pour chaque fichier indiqué comme « chemin non fusionné » par git status.
git add hello.txtTerminer la validation de fusion
Une fois tous les fichiers en conflit indexés, la fusion est prête à être validée. Git fournit généralement un message de validation de fusion par défaut, que vous pouvez accepter ou modifier. Cette validation finale termine le processus de fusion.
git commit -m "Merged feature branch, resolved conflict in hello.txt"Vérification de la résolution du conflit
Vous avez réussi à résoudre un conflit de fusion. Vérifions maintenant votre compréhension de l’étape cruciale qui suit la modification manuelle d’un fichier en conflit.
Récapitulatif : résolution manuelle des conflits
Vous avez appris à résoudre manuellement les conflits de fusion ! C'est une compétence fondamentale pour tout développeur.
- Les conflits surviennent lorsque Git ne peut pas fusionner automatiquement les modifications.
git statusrévèle les fichiers non fusionnés.- Les marqueurs de conflit (
<<<<<<<,=======,>>>>>>>) indiquent un code divergent. - Modifiez manuellement les fichiers, supprimez les marqueurs et choisissez le contenu final.
- Ajoutez les fichiers résolus à l'index avec
git add. - Terminez la fusion avec
git commit.
C'est en pratiquant que l'on progresse ! Les conflits peuvent sembler intimidants au début, mais ces étapes vous permettront de les maîtriser.
Questions Fréquemment Posées
La leçon « Résoudre manuellement les conflits de fusion » est-elle gratuite ?
Oui — le texte complet de « Résoudre manuellement les conflits de fusion » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Résoudre manuellement les conflits de fusion » ?
Apprenez à identifier et à résoudre manuellement les conflits de fusion qui apparaissent lors de l’intégration de branches divergentes. Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?
Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Résoudre manuellement les conflits de fusion » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?
Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Résoudre manuellement les conflits de fusion
- Rebasage interactif de l’historique
- Sélectionner des validations
- Réutiliser les résolutions de conflits avec Git Rerere