doc-locale/fr-fr/user/project/merge_requests/conflicts.md
{{< details >}}
{{< /details >}}
Des conflits de merge surviennent lorsque deux branches dans un merge request, la source et la cible, ont des modifications différentes sur les mêmes lignes de code. Dans la plupart des cas, GitLab peut fusionner les modifications, mais lorsque des conflits surviennent, vous devez décider quelles modifications conserver.
Pour résoudre un merge request avec des conflits, vous devez soit :
GitLab résout les conflits en créant un commit de merge dans la branche source sans le fusionner dans la branche cible. Vous pouvez ensuite examiner et tester le commit de merge pour vérifier qu'il ne contient aucune modification non intentionnelle et ne compromet pas votre build.
Lorsque Git détecte un conflit nécessitant une décision de votre part, il marque le début et la fin du bloc de conflit avec des marqueurs de conflit :
<<<<<<< HEAD marque le début du bloc de conflit.======= marque la fin de vos modifications.>>>>>>> marque la fin du conflit.Pour résoudre un conflit, supprimez :
======= entre les deux versions.Vous pouvez résoudre les conflits de merge dans l'interface utilisateur GitLab si le fichier en conflit :
Si un fichier ne répond pas à ces critères, vous devez résoudre le conflit manuellement.
GitLab affiche les conflits disponibles pour la résolution dans l'interface utilisateur, et vous pouvez également résoudre les conflits en utilisant les méthodes suivantes :
{{< details >}}
{{< /details >}}
{{< history >}}
mr_ai_resolve_conflicts. Activé par défaut.{{< /history >}}
[!flag] La disponibilité de cette fonctionnalité est contrôlée par un feature flag. Pour plus d'informations, consultez l'historique.
GitLab Duo peut analyser de manière autonome les conflits de merge, modifier les fichiers en conflit, créer un commit et pousser vers la branche source.
Prérequis :
Pour résoudre les conflits avec GitLab Duo :
GitLab Duo analyse les conflits, les résout, valide les modifications et pousse vers la branche source. Une fois terminé, GitLab Duo publie un commentaire récapitulatif sur le merge request.
GitLab Duo respecte les règles de protection des branches et ne force pas le push vers les branches protégées.
Le mode interactif fusionne la branche cible dans la branche source avec vos modifications choisies.
Pour résoudre les conflits de merge en mode interactif :
Dans la barre supérieure, sélectionnez Rechercher ou aller à et trouvez votre projet.
Dans la barre latérale gauche, sélectionnez Code > Requêtes de fusion et trouvez le merge request.
Sélectionnez Vue d'ensemble et faites défiler jusqu'à la section des rapports du merge request.
Trouvez le message de conflits de merge et sélectionnez Résoudre les conflits. GitLab affiche une liste de fichiers avec des conflits de merge. Les lignes en conflit sont mises en surbrillance.
Pour chaque conflit, sélectionnez Utilisez les nôtres ou Utilisez les leurs pour marquer la version des lignes en conflit que vous souhaitez conserver. Cette décision est connue sous le nom de « résolution du conflit ».
Lorsque vous avez résolu tous les conflits, saisissez un Message de commit.
Sélectionnez Validation sur la branche source.
Certains conflits de merge sont plus complexes et vous devez modifier les lignes manuellement pour les résoudre.
L'éditeur de résolution de conflits de merge vous aide à résoudre ces conflits dans GitLab :
Dans la barre supérieure, sélectionnez Rechercher ou aller à et trouvez votre projet.
Dans la barre latérale gauche, sélectionnez Code > Requêtes de fusion et trouvez le merge request.
Sélectionnez Vue d'ensemble et faites défiler jusqu'à la section des rapports du merge request.
Trouvez le message de conflits de merge et sélectionnez Résoudre les conflits. GitLab affiche une liste de fichiers avec des conflits de merge.
Trouvez le fichier à modifier manuellement et faites défiler jusqu'au bloc de conflit.
Dans l'en-tête de ce fichier, sélectionnez Modifier en ligne pour ouvrir l'éditeur. Dans cet exemple, le bloc de conflit commence à la ligne 1350 et se termine à la ligne 1356 :
Après avoir résolu le conflit, saisissez un Message de commit.
Sélectionnez Validation sur la branche source.
Si votre merge request est bloqué avec un message Checking ability to merge automatically, vous pouvez :
/rebase.Pour résoudre les problèmes de pipeline CI/CD, consultez le débogage des pipelines CI/CD.
Pour les projets utilisant la méthode de merge semi-linéaire ou fast-forward, vous pouvez également activer le rebase automatique avant le merge pour ignorer l'étape de rebase manuelle.
Pour déclencher un rebase depuis l'interface utilisateur GitLab, utilisez l'action rapide /rebase ou l'option de rebase dans le widget du merge request.
Prérequis :
Pour rebaser la branche d'un merge request depuis l'interface utilisateur GitLab :
/rebase et sélectionnez Commentaire.GitLab planifie puis exécute un rebase de la branche par rapport à la branche par défaut. GitLab affiche le rebase terminé sous forme de note système.
[!note] Si vous avez configuré la signature des commits pour les commits effectués via l'interface utilisateur GitLab, les commits web perdent leurs signatures de commit lors du rebase via l'interface utilisateur.