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.

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}

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.