Как заставить p4merge распознавать конфликты, вызванные `git cherry-pick`, так же, как это происходит с`git merge`?

Я следовал за этим частично вишневым выбором коммита с git для вишневого выбора изменений только на определенных файлах.

после вишневого выбора у некоторых файлов были конфликты, то есть у файлов есть секции как:

<<<<<<<<<<<<
>>>>>>>>>>>>

обычно с помощью git merge я использую мой любимый p4merge для разрешения конфликтов, что очень интуитивно понятно и безошибочно.

но с cherry-pick, когда я использую git mergetool, он говорит, что ничего не нужно объединять, хотя файл имеет <<<<<< в этом. поэтому мне пришлось вручную редактировать и разрешать конфликты.

так как я мог дать Git знать, что конфликт существует?

спасибо Ян

1 ответ

Если git cherry-pick киоски из-за конфликта, затем увольнение git mergetool подхватит конфликты; что это не означает, что что-то пошло не так, и что Git каким-то образом решил, что конфликт уже разрешен.

Если вы бежите git blame -L '/^<<<</,/^>>>>/' -- {filename}, это аннотирует ваш файл между маркерами изменений, показывая, где были введены эти маркеры слияния. Есть две возможности:

  • Маркеры изменений помечены как "Пока не совершено". В этом случае Git каким-то образом решил, что файл уже объединен, либо из-за неудачного вызова git mergetoolили сомнительный призыв git add,

    Единственный способ, которым я знаю, чтобы оправиться от этого, - прекратить выборку вишни (используя git cherry-pick --abort) и попробуйте еще раз, но могут быть лучшие альтернативы.

  • Маркеры изменений отмечены определенным коммитом. В этом случае кто-то был глуп с их коммитами. Если вы посмотрите на данный коммит, он должен сказать вам, кто сделал коммит и что это было; Вы можете быть в состоянии восстановиться, посмотрев, откуда оно появилось, и повторно решив.

Другие вопросы по тегам