Почему объединение ветки разработки с функциональной ветвью необходимо при объединении запроса на выборку? - PullRequest
0 голосов
/ 31 октября 2019

Я хочу объединить пул-запрос GitHub из моей функциональной ветки в разработку. Вот инструкции от GitHub, чтобы сделать это через командную строку:

Шаг 1:

git fetch origin
git checkout -b feature-branch origin/feature-branch
git merge development

Шаг 2:

git checkout development
git merge --no-ff feature-branch
git push origin development

Почему git merge development требуется?

1 Ответ

2 голосов
/ 31 октября 2019

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

development: -- A -- B -- C -- D
                      \
feature:               E -- F

Здесь вы отошли от development при B коммите, и с тех пор вы сделали F коммит и другие (возможно, даже вы какхорошо) сделали C и D коммиты в удаленную ветку development. Первым из двух ваших шагов было слияние development с вашей веткой объектов:

development: -- A -- B -- C -- D
                      \         \
feature:               E -- F -- M1

Теперь у вас есть M1 коммит слияния локально, и ваша ветка должна быть полностью обновлена ​​с тем, что поступилоудаленно в C и D коммитов. Теперь вы можете объединить свою ветвь объектов в development, оставив вам:

development: -- A -- B -- C -- D -- M2
                      \         \  /
feature:               E -- F -- M1

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

...