2016-07-18 2 views
1

Наша команда приняла общую стратегию PR, в которой каждый код ветви признака проверяется перед объединением с основной ветвью. Мы также приняли стратегию частое слияние в основной отрасли, чтобы избежать огромных конфликтов после того, как отрасль будет завершена.Код Просмотр запроса на извлечение с совпадением мастерства

Это хорошо сработало, но мы сталкиваемся с проблемами с ветвями, которые занимают больше времени для сборки. Я смотрю код, просматривающий ветку, на которую ушло пару недель на сборку. В PR имеется более 100 записей более 100 файлов. Теперь фактическая особенность, вероятно, составляет лишь около 15%, остальные просто сливаются с основной ветвью.

Есть ли способ уменьшить это и сосредоточиться только на новом коде в этой ветке, в отличие от необходимости просеивать через 100 строк кода, который на самом деле уже был просмотрен кодом и объединен с основной ветвью?

ответ

0

Мое предложение для этого случая - rebase. Вы часто видите, что это запрашивается в репозиториях с открытым исходным кодом, где ваша ветка функций может устареть с главной ветвью.

Это будет означать, что вы переможете историю ветвей, установите ее на кончик текущей ветви, на которую вы переставляете, затем снова примените свои уникальные изменения, чтобы все было в актуальном состоянии.

Предостережение: Фиксирующие конфликты слияния могут вводить в заблуждение для длинных ветвей во время восстановления, потому что вам необходимо исправить конфликты на разных этапах через зрелость вашей функциональной ветви - часто вы забываете, что вы делали!

Вы также можете объединить главный ветвь в свою ветку функций, которая применит изменения наверх ваших изменений. Мне не нравится этот подход, потому что он похож на ваши изменения под ненужным кодом на вашу функцию, но так легче исправлять конфликты, потому что ваш код находится в состоянии «завершено», когда вы это делаете.

0

Вы сравниваете не с базой признаков, а с mergebase будущего слияния, которое является последним коммандным коммитом, который был объединен. Таким образом вы видите только то, что было сделано в ветви функции.

Вы можете сделать это, не смотря на коммит, позвонив по телефону git diff master...feature (обратите внимание на 3 точки там)

man git-diff см