2016-11-11 3 views
2

Я смущен правильно, чтобы вручную слить запрос на тяну, и понять, почему есть разные предложения относительно этого.Вручную слить запрос git pull

Предположительная простейшая ситуация: одна ветка master (долговечная) и одна ветка feature с несколькими коммитами, для которых выполнен запрос на растяжение, но который показывает конфликты слияния с главной ветвью.

GitHub говорит делать:

git fetch origin 
git checkout -b feature origin/feature 
git merge master 

, а затем

git checkout master 
git merge --no-ff feature 
git push origin master 
  1. Почему мы сливаться master в feature, а затем наоборот после этого? This SO предлагает заказ неважно, но This SO предполагает наличие проблем, связанных с родителем.

  2. This SO обсуждает вручную сливающихся запросы тянуть, но говорит, что вам нужно только объединить свою основную ветвь в вашей особенности отрасли и это все. Как это согласуется с тем, что говорит GitHub?

ответ

2

Для вашего пункта 2 это не говорит о слиянии истории с мастером, потому что это не то, что хочет сделать ОП.

Что касается вашего вопроса. Давайте предположим, что мы имеем это:

   master 
*---*----*----* 
     \   
     ---*----* 
       feature 

Если объединить мастера в функцию, которая принесет все изменения, внесенные в мастер к вашей особенности отрасли. Ветка функция будет содержать последние изменения от мастера плюс изменения в функции:

   master 
*---*----*----* 
     \   \ 
     ---*----*--* 
        feature 

мастер таким образом до сих пор указывают на то передай, как и раньше, но функция будет указывать на новое обязательство , который имеет все изменения для обеих ветвей.

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

*---*----*----* 
     \   \ 
     ---*----*--* 
        feature 
        master 

Я предпочитаю держать линейную историю, и, таким образом, перебазирование ветви функции на мастере до слияния его в мастер. Но ваш пробег может отличаться.

+0

Привет, спасибо вам за помощь! Имеет смысл сохранить линейную историю, но если ветвь 'feature 'недолговечна (т. Е. Будет удалена после слияния), правильно ли просто объединить' feature' INTO 'master', разрешить возникающие конфликты, а затем удалить особенность? – ministry

+0

Если это работает для вас, да. –

Смежные вопросы