Остерегайтесь того факта, что git merge develop -Xtheirs
(аналогично вашему git merge develop --strategy-option theirs
) НЕ является способом "принять то, что находится в разработке, как источник истины, перезаписывая любые изменения в мастере"
Это займет«их» (в вашем случае, master
) версия для каждого конфликтующего фрагмента , но любое другое (не конфликтующее) изменение будет обрабатываться обычным способом, принимая все от обоих родителей, когда это возможно.
Чтобы объединить, взяв все от одного родителя, сделав результат в точности похожим с точки зрения кода на одного родителя, у вас есть другой вариант, который заключается в использовании -s ours
на стороне, которую выхочу сохранить (поскольку, к сожалению, «их» аналога не существует).
Это может выглядеть так
git checkout -b develop-copy develop
git merge -s ours master
git checkout master
git merge develop-copy
На этом этапе master
имеет точно такое же дерево develop
имеет, и ветви считаются объединенными для всех дальнейших целей.