Как выбрать файлы из одной ветки во время слияния?

Некоторое время назад я создал ветку из ветки master. Позвольте называть его new_feature. Пока я работал над new_feature, ветвь master следовала за ее нормальной эволюцией. Теперь, когда new_feature готов к объединению в master, я вижу некоторые конфликты, все они относятся к файлам, которые полностью не связаны с реальной новой функцией (например, некоторые файлы конфигурации и те, которые были изменены на master)., Я собираюсь разрешить конфликты вручную, но мне было интересно, так как это происходит довольно часто, как я мог просто объединить ветвь new_feature в master, всегда сохраняя версию файлов master в случае конфликта?

Я уверен, что это легко и связано с чем-то вроде "сохранить версию", но так как это довольно чувствительный предмет, который я бы предпочел, чем сожалеть.

Ответ 1

Как упоминается в комментарии, в документации есть несколько стратегий. Вы также можете найти их здесь: http://git-scm.com/docs/git-merge

Вы ищете либо git merge -s recursive -X ours, либо git merge -s recursive -X theirs в зависимости от ветки, в которой вы находитесь. Будьте осторожны с ними, поскольку вы можете случайно пропустить изменения в ваших файлах из другой ветки, и они будут перезаписаны.

Другим методом, который я предпочитаю из-за большего контроля, является git checkout <other-branch> -- <list of files>. Таким образом, я не случайно перезаписываю файл с неправильными изменениями.