Je suis bloqué dans un conflit de merge
Ce qui vient de se passer
Deux branches ont modifié les mêmes lignes. Git a mis le merge (ou le rebase, ou le pull) en pause et te demande de choisir. Rien n'est perdu : les deux versions sont dans le fichier.
Risques potentiels
- Commiter des fichiers qui contiennent encore des marqueurs de conflit casse le build.
- « Résoudre » en supprimant l'autre côté jette discrètement le travail d'un collègue.
Avant d'exécuter quoi que ce soit
- Entre <<<<<<< et ======= c'est ta version ; entre ======= et >>>>>>> c'est la leur.
- En cas de doute, demande à l'auteur de l'autre modification.
Étapes de récupération
- 1
Voir les fichiers en conflit
Cherche « both modified ».
Sans risque$ git status$ git diff --name-only --diff-filter=U - 2
Bouton panique : tout annuler
Retour à l'état d'avant le merge ou le rebase.
Sans risque$ git merge --abort# or, during a rebase:$ git rebase --abort - 3
Prendre un côté pour tout un fichier
Seulement si tu es sûr qu'une version est la bonne. Pendant un rebase, « ours » et « theirs » sont inversés.
Prudence$ git checkout --ours path/to/file# or$ git checkout --theirs path/to/file - 4
Marquer comme résolu et terminer
Après avoir édité les fichiers et retiré tous les marqueurs.
Sans risque$ git add path/to/file$ git commit# or, during a rebase:$ git rebase --continue
Ces procédures sont fournies à titre informatif. Lis chaque commande et adapte-la à ta situation avant de l'exécuter. Disclaimer