Як я можу вирішити конфлікти вишні, використовуючи їх зміни?


110

У мене git cherry-pick FOOвиник конфлікт.

Я міг би пройти файли , що суперечать один одному, і видалити рядки між <<<<<<<і =======та самими маркерами конфлікту, але сподіваюся, що існує простіший спосіб.

Я думаю, що svnеквівалент вирішив theirs-conflictвирішити.

Як це зробити git?

Я не хочу, git checkout --theirs <file>оскільки це, здається, дає такий же результат, як git checkout foo <file>замість того, щоб просто git diff FOO~..FOO <file>застосовуватись.

Відповіді:


196

Спочатку слід скасувати вишню, спробуйте це запустити

git cherry-pick --abort

По-друге, спробуйте зробити вишню, але за цей час ви отримаєте їх зміни не за ваші, тому зробіть це:

git cherry-pick --strategy=recursive -X theirs {Imported_Commit}

6
Трохи більше інформації про те, що ці перемикачі роблять доступні на stackoverflow.com/questions/2268172 / ...
antak

27
Я спробував це саме: git cherry-pick --strategy=recursive -X theirs 1b92440і мені все ще пропонується до невирішеного конфлікту : Unmerged paths: deleted by them: (file path). Будь-яка ідея?
pilau

Більш зрозумілим способом скидання після невдалої вишні / злиття є використанняgit reset --merge
Pylinux

10
git cherry-pick --abort- це рекомендований спосіб відмінити роботу вишні.
tommyk

У мене немає -Xваріанту в git cherry-pick. git 1.7.2.3.
Френк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.