Résolution des Conflits de Fusion
Glissez pour afficher le menu
Résolution des conflits
Dans le chapitre précédent, un conflit de fusion s'est produit, il est donc temps de le résoudre.
Commencez par ouvrir le fichier branch_learning.txt dans l’éditeur Vim à l’aide de la commande suivante :
vim branch_learning.txt
Si Vim n’est pas installé, il est possible d’utiliser un autre éditeur de texte comme nano ou atom en remplaçant vim par le nom de votre éditeur dans la commande ci-dessus.
Cependant, il est recommandé d’utiliser Vim pour faciliter le suivi des étapes présentées ici.
Voici le fichier ouvert dans l’éditeur Vim :
Vous pouvez maintenant voir les marqueurs de conflit indiquant les sections en conflit.
Ces marqueurs utilisent des flèches et des symboles spéciaux pour mettre en évidence les différences entre les branches :
<<<<<<< HEAD: marque le début des modifications provenant de la branche actuelle (master) ;=======: sépare les modifications de la branche actuelle (HEAD) et celles de la branche fusionnée ;>>>>>>> feature/new-feature: marque la fin des modifications de la branche fusionnée.
Pour résoudre le conflit, choisissez l'une des options suivantes :
- Conserver les modifications de la branche actuelle (
master) ; - Conserver les modifications de la branche fusionnée (
feature/new-feature) ; - Modifier manuellement le contenu.
Modifier manuellement le fichier en combinant les modifications des deux branches à l'aide des étapes suivantes :
1. Entrer en mode édition
Commencez par passer en mode insertion dans Vim en appuyant sur i.
Cela permet de modifier le texte.
2. Modifier la section en conflit
Ensuite, combiner les lignes des deux branches de manière séquentielle. Le contenu final du fichier doit ressembler à ceci :
New branch
New line from the master branch
New line from the feature branch
3. Quitter le mode édition, enregistrer et quitter
Appuyer sur la touche Échap pour quitter le mode insertion.
Puis taper :wq et appuyer sur Entrée pour enregistrer les modifications et quitter Vim :
Validation du fichier
Les conflits étant résolus, ajout du fichier branch_learning.txt à la zone de préparation et vérification de l'état :
git add branch_learning.txt
git status
Le fichier a été modifié et ajouté avec succès à la zone de staging. Procéder maintenant au commit :
git commit
Encore une fois, l’éditeur de texte par défaut s’ouvre (Vim dans mon cas) avec le message de commit par défaut concernant la fusion :
Passez en mode insertion dans Vim en appuyant sur i, puis modifiez le message en ajoutant la ligne
Kept lines from both branches
pour décrire la résolution des conflits.
Voici le message de commit complet :
Merge branch 'feature/new-feature'
Kept lines from both branches
Pour quitter le mode insertion, enregistrer les modifications et fermer Vim, appuyer sur la touche Échap, puis taper :wq et appuyer sur Entrée.
Le commit est réussi et le conflit de fusion est maintenant résolu.
Examinons maintenant notre historique des commits sous forme de graphe (option --graph) avec une ligne par commit (option --oneline) :
git log --graph --oneline
Ici, vous pouvez voir le dernier commit de fusion ainsi que la structure caractéristique d'une fusion à trois voies.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion