в цели, которую вы не хотите изменять и сохранять историю. Кроме того, предполагается, что есть конфликты слияния в
ользую git для нового проекта, который имеет две параллельные - но в настоящее время экспериментальные - ветки разработки:
master
: импорт существующей кодовой базы плюс несколько модов, в которых я обычно уверенexp1
: экспериментальный филиал № 1exp2
: экспериментальный филиал № 2exp1
а такжеexp2
представляют два очень разных архитектурных подхода. Пока я не продвинусь дальше, у меня нет никакого способа узнать, какой из них (если любой) будет работать. Поскольку я делаю успехи в одной ветви, у меня иногда есть изменения, которые были бы полезны в другой ветви и хотели бы объединить только те.
Каков наилучший способ объединить выборочные изменения из одной ветви разработки в другую, оставляя позади все остальное?
Подходы, которые я рассмотрел:
git merge --no-commit
с последующей ручной постановкой большого количества правок, которые я не хочу делать общими для ветвей.
Ручное копирование общих файлов во временный каталог с последующимgit checkout
перейти к другой ветке и затем вручную скопировать ее из временного каталога в рабочее дерево.
Вариация на выше. Отказаться отexp
пока что разветвляются и используют два дополнительных локальных репозитория для экспериментов. Это делает ручное копирование файлов намного проще.
Все эти три подхода кажутся утомительными и подверженными ошибкам. Я надеюсь, что есть лучший подход; что-то похожее на параметр пути фильтра, который сделаетgit-merge
более избирательно