Comment résoudre les conflits de sélection à l'aide de leurs modifications?

110

Mon a git cherry-pick FOOproduit un conflit.

Je pourrais parcourir les fichiers en conflit et supprimer les lignes entre <<<<<<<et =======et les marqueurs de conflit eux-mêmes, mais j'espère qu'il existe un moyen plus simple.

Je pense que l' svnéquivalent a été de choisir theirs-conflictde résoudre.

Comment faire cela git?

Je ne veux pas git checkout --theirs <file>que cela semble produire le même résultat qu'au git checkout foo <file>lieu d'être simplement git diff FOO~..FOO <file>appliqué.

antak
la source

Réponses:

196

Vous devez d'abord annuler votre sélection, essayez d'exécuter ceci

git cherry-pick --abort

Deuxièmement, essayez de faire un tri sélectif, mais pendant ce temps, vous obtenez leurs modifications pas les vôtres, alors faites ceci:

git cherry-pick --strategy=recursive -X theirs {Imported_Commit}
elhadi dp ıpɐɥ ן ǝ
la source
6
Un peu plus d'informations sur ce que font ces commutateurs sont disponibles sur stackoverflow.com/questions/2268172/…
antak
27
J'ai essayé exactement: git cherry-pick --strategy=recursive -X theirs 1b92440et je suis toujours invité à entrer un conflit non résolu: Unmerged paths: deleted by them: (file path). Une idée?
pilau
Un moyen plus compréhensible de réinitialiser après un échec de sélection / fusion de cerises consiste à utilisergit reset --merge
Pylinux
10
git cherry-pick --abort- c'est une méthode recommandée pour annuler l'opération de sélection de cerises.
tommyk
Je n'ai pas le -Xchoix git cherry-pick. git 1.7.2.3.
Frank