2016-02-25 2 views
0

Вот сценарий: есть ветвь удаленной функции, называемая «new_feature_x», и два разработчика - Джон и Макс. Журнал "new_feature_x" выглядит следующим образом:Как объединить слияние rebate на общей удаленной ветке?

5: [Max - обновленный цвет кнопки]
4: [Джон - слияние совершить от мастера]
3: [Джон - обновленный API вызов]
2: [ Макс - фиксированный текст кнопки]
1: [Джон - первый коммиты new_feature_x]

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

мерзавец перебазироваться -i -p хозяину

Но это показывает только совершает 4 и 5. Он делает FixUp для этих двоих, но потом, совершает 1,2,3 все еще находятся в журнале.

Два вопроса:

1) Как объединить все в одну совершающие? Почему все до того, как слияние не появляется, когда я делаю «git rebase -i -p master»?

2) Какова лучшая стратегия/рабочий процесс в будущем для этого сценария? Должны ли Джон и Макс не использовать слияние в ветви функции? Я помню, как где-то читал, что переадресация никогда не должна быть нажата для удаленной общей ветви. Каков наилучший способ получить изменения от мастера и нажать на удаленную ветвь? Цель состоит в том, что когда функция будет выполнена, ее можно объединить обратно в мастер как единую чистую фиксацию.

ответ

1

Относительно вашего первого вопроса.

Это сценарий, который вы описали. Как вы видите, commit 3 - это только тот, который уже существует в главной ветви. В ветке содержится только слияние. enter image description here

Когда вы делаете git rebase -i master, вы применяете фишку функции к главной ветке. В итоге вы получите дерево, как показано ниже.

enter image description here

Теперь вы можете сквош совершает в вашей отрасли к одному и слиться с мастером.

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

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