Aller au contenu

GUIDE TECHNIQUE · GITHUB

Résoudre les conflits de fusion d’une pull request GitHub

Diagnostiquer et résoudre un conflit de fusion GitHub sur une branche de pull request, sans écraser les changements de main ni perdre les contributions parallèles.

Niveau Intermédiaire5 min de lecture— vuesGitHub

L’ESSENTIEL EN BREF

Les étapes clés

Ce guide présente 5 étapes, de « Lire la nature du conflit dans la pull request » à « Mettre à jour la pull request et relancer les contrôles ».

Avant de commencer : Une pull request de recette signalant des conflits de fusion.

01 · CADRAGE

Périmètre et résultat visé

Résultat attendu : Le diff ne contient plus de marqueurs de conflits.

Public concerné : Développeurs, responsables de revue de code, intégrateurs et équipes DevOps

Environnement et versions

Git CLI et pull requests GitHub. Exemple avec main comme branche cible ; adapter les noms à la politique du dépôt.

Contrôlez les versions, les droits et les options disponibles dans votre environnement avant de suivre la procédure.

02 · AVANT DE COMMENCER

Prérequis et points de contrôle

  • Une pull request de recette signalant des conflits de fusion.
  • Une copie locale propre et les droits nécessaires sur la branche de travail.
  • Une compréhension du comportement attendu de chaque modification conflictuelle.
  • Une procédure de validation fonctionnelle et des contrôles CI après résolution.

03 · VUE D’ENSEMBLE

Comprendre l’architecture et les flux

ARCHITECTURE TECHNIQUEComprendre la chaîne de bout en bout
01main distante
02branche PR
03conflit
04résolution
05CI
06fusion
Le conflit apparaît quand Git ne sait pas assembler automatiquement deux modifications concurrentes. La résolution doit préserver l’intention métier de chaque changement avant de soumettre une nouvelle vérification.

04 · TUTORIEL

Procédure complète, étape par étape

Suivez les étapes dans l’ordre et contrôlez chaque résultat avant de poursuivre. Renseignez les paramètres adaptés à votre environnement.

01

ÉTAPE 1 / 5

Lire la nature du conflit dans la pull request

Le simple affichage de marqueurs ne suffit pas à connaître la logique métier impactée.

  1. Relever les fichiers conflictuels affichés par GitHub.
  2. Consulter les échanges de revue et l’origine des modifications.
  3. Identifier les responsables des deux changements.
Exemple techniqueÀ adapter à votre environnement
git fetch origin
git status --short
git log --oneline --graph --all -12
Ce qui se passe à cette étape
1PR
2Conflit
3Analyse

À vérifier : Les fichiers à résoudre et les intervenants à consulter sont identifiés.

Point de vigilance : Éviter de choisir arbitrairement « ours » ou « theirs » lorsque les deux modifications répondent à des besoins distincts.

02

ÉTAPE 2 / 5

Synchroniser la branche de travail avec main

Résoudre le conflit localement facilite l’inspection des diffs et l’exécution des tests.

  1. Se placer sur la branche source de la pull request.
  2. Récupérer main depuis le dépôt distant.
  3. Fusionner main dans la branche de recette, sans modifier main.
Exemple techniqueÀ adapter à votre environnement
git switch feature/ma-pr
git fetch origin
git merge origin/main
git status --short
Ce qui se passe à cette étape
1Branche PR
2Merge main
3Fichiers conflictuels

À vérifier : Les conflits éventuels sont listés ; main n’a pas été modifiée.

Point de vigilance : Ne pas lancer git reset --hard sur une copie contenant du travail non sauvegardé.

03

ÉTAPE 3 / 5

Résoudre le code selon l’intention fonctionnelle

La résolution correcte peut nécessiter une combinaison des deux changements.

  1. Ouvrir chaque fichier contenant les marqueurs <<<<<<<, ======= et >>>>>>>.
  2. Comparer les deux versions et écrire une version cohérente.
  3. Demander l’avis de l’auteur du changement si la règle métier n’est pas évidente.
Exemple techniqueÀ adapter à votre environnement
git diff --name-only --diff-filter=U
git diff --check
# Corriger les fichiers dans l’éditeur avant git add.
Ce qui se passe à cette étape
1Versions
2Arbitrage
3Code cohérent

À vérifier : Le code de résolution ne contient plus de marqueurs ni de modifications non voulues.

Point de vigilance : Un conflit résolu syntaxiquement peut encore être incorrect fonctionnellement.

04

ÉTAPE 4 / 5

Valider le résultat et terminer la fusion locale

Les contrôles doivent porter sur la version combinée.

  1. Relire le diff et exécuter les tests propres au projet.
  2. Ajouter uniquement les fichiers résolus.
  3. Terminer le commit de fusion une fois les changements contrôlés.
Exemple techniqueÀ adapter à votre environnement
git diff --check
git status --short
git add chemin/du-fichier
git commit
Ce qui se passe à cette étape
1Diff
2Tests
3Commit

À vérifier : Le commit de résolution est créé et l’espace de travail est propre.

Point de vigilance : Si la résolution devient incertaine, utiliser git merge --abort avant de la committer.

05

ÉTAPE 5 / 5

Mettre à jour la pull request et relancer les contrôles

La vérification de CI et la revue doivent suivre la nouvelle tête de branche.

  1. Pousser normalement la branche source de la PR.
  2. Vérifier la disparition du signal de conflit dans GitHub.
  3. Relancer ou examiner la CI et les approbations nécessaires avant fusion.
Exemple techniqueÀ adapter à votre environnement
git push origin feature/ma-pr
# Dans GitHub : vérifier Files changed et Checks.
Ce qui se passe à cette étape
1Push PR
2CI
3GO / NO GO

À vérifier : GitHub permet la revue de la résolution et applique les règles de fusion sur le dernier commit.

Point de vigilance : Éviter le force push ; prévenir les reviewers si la résolution touche le comportement fonctionnel.

RÉFÉRENCES TECHNIQUES

Documentation officielle

Retrouvez les prérequis, les fonctionnalités et les versions prises en charge par GitHub. Vérifiez les commandes sur un environnement de test avant leur utilisation en production.

Consulter la documentation officielle

05 · RECETTE

Comment vérifier que tout fonctionne ?

Résultat attenduContrôles avant de considérer la procédure terminée
01

Le diff ne contient plus de marqueurs de conflits.

02

Les changements métier concurrents ont été explicitement pris en compte.

03

Les contrôles CI sont relancés après la résolution.

04

main est inchangée tant que la pull request n’est pas fusionnée.

06 · DIAGNOSTIC

Problèmes fréquents et résolution

git merge signale un conflit

Cause probable : Deux branches ont modifié des zones incompatibles

Que faire : Inspecter les fichiers avec git diff --name-only --diff-filter=U.

Le commit refuse de terminer

Cause probable : Fichier non résolu ou non ajouté

Que faire : Corriger les marqueurs puis git add chaque fichier.

La CI échoue après résolution

Cause probable : Le code combiné introduit une régression

Que faire : Reproduire le contrôle et corriger sur la branche PR.

La PR reste non fusionnable

Cause probable : Nouvelle évolution de main ou autre règle GitHub

Que faire : Vérifier l’état des checks, les reviews et l’actualité de la branche.

07 · QUESTIONS PRATIQUES

Questions fréquentes

Faut-il utiliser l’éditeur de conflits GitHub ?

L’éditeur web convient à certains conflits simples. En cas de logique complexe, privilégier un IDE et les tests locaux.

Pourquoi fusionner main dans la branche PR ?

Cette méthode conserve les commits publics de la PR tout en intégrant les derniers changements de main.

Comment annuler une tentative de résolution ?

Avant le commit final, git merge --abort permet d’annuler la fusion en cours si les modifications sont propres.

Un conflit réglé garantit-il l’absence de bug ?

Non. La résolution doit être soumise à une revue et à une validation technique/fonctionnelle.

AUTRES TECHNOLOGIES

Guides complémentaires

Tous les guides GitHub

VOTRE ENVIRONNEMENT

Besoin d’aller plus loin sur votre environnement ?

Gouvernance, CI/CD et pratiques DevOps : échangeons sur la sécurité et la fiabilité de vos workflows GitHub.

Échanger avec ADN Consulting

Pour aller plus loin