Wie löse ich Cherry-Pick-Konflikte mithilfe ihrer Änderungen?

110

Ich habe git cherry-pick FOOeinen Konflikt erzeugt.

Ich könnte die widersprüchlichen Dateien durchgehen und die Zeilen zwischen <<<<<<<und =======und die Konfliktmarkierungen selbst löschen , aber ich hoffe, es gibt einen einfacheren Weg.

Ich denke, das svnÄquivalent entschied sich theirs-conflictfür eine Lösung.

Wie mache ich das in git?

Ich möchte nicht, git checkout --theirs <file>da dies das gleiche Ergebnis zu erzielen scheint, als git checkout foo <file>nur git diff FOO~..FOO <file>angewendet zu werden.

Antak
quelle

Antworten:

196

Zuerst sollten Sie Ihre Kirschpickel rückgängig machen und versuchen, dies auszuführen

git cherry-pick --abort

Zweitens, versuchen Sie, Kirschbaum zu pflücken, aber in dieser Zeit erhalten Sie ihre Änderungen nicht Ihre, also machen Sie dies:

git cherry-pick --strategy=recursive -X theirs {Imported_Commit}
elhadi dp ıpɐɥ ן ǝ
quelle
6
Ein bisschen mehr Informationen darüber, was diese Schalter tun, finden Sie unter stackoverflow.com/questions/2268172/…
antak
27
Ich habe genau das versucht: git cherry-pick --strategy=recursive -X theirs 1b92440und ich werde immer noch zu einem ungelösten Konflikt aufgefordert : Unmerged paths: deleted by them: (file path). Irgendeine Idee?
Pilau
Eine verständlichere Möglichkeit zum Zurücksetzen nach einem fehlgeschlagenen Cherry-Pick / Merge ist die Verwendung vongit reset --merge
Pylinux
10
git cherry-pick --abort- Dies wird empfohlen, um den Kirschpflückvorgang rückgängig zu machen.
Tommyk
Ich habe keine -XOption in git cherry-pick. git 1.7.2.3.
Frank