Git - Слияние с rebase
Я смотрел на Когда вы используете git rebase вместо git merge? ,
Но я хотел бы быть уверен, какое решение выбрать в этом случае:
Я хочу реализовать новую функцию на master
поэтому я добавляю ее в новую ветку Feature.
Я делаю 10 коммитов на Feature, в то время как кто-то другой делает коммиты на Master.
Мой вопрос заключается в том, хочу ли я отделить свою ветку от Мастера для целей тестирования, но мне нужно протестировать ее с интегрированными новыми мастер-коммитами. Итак, я должен объединить Мастер в Feature (а не Feature в Master, который бы применил мои модификации на Master перед моим тестированием) или сделать rebase
?
Ответы
Ответ 1
Почему бы не создать новую ветку для проверки объединенной версии? Например:
git checkout -b test-merged-feature master
git merge my-feature
[... do your testing ..]
Нет никаких оснований делать здесь переустановку, но если вы еще не нажали свою ветку функций, это тоже будет хорошо. Эти вопросы частично связаны с тем, как вы хотели бы, чтобы ваша история выглядела - некоторым людям не нравится видеть много слияний; некоторые предпочитают это как способ отслеживания того, что фиксация способствовала определенной функции.
Ответ 2
Если вы уже не нажали свою ветку (и вы знаете, что другие клонировали ваше репо), я все равно сделаю rebase, как я упомянул в своем собственном ответе "git rebase vs git merge".
Протестируйте или нет, я обычно делаю rebase каждый раз, когда я обновляю свое местное репо (git fetch), чтобы гарантировать окончательное слияние (Feature
to master
) будет быстро пересылаться.
Итак, речь идет не только о том, как выглядит ваша история, но в основном о том, чтобы убедиться, что то, что вы разрабатываете, не основано на старой версии master
и продолжает работать против последних изменений, сделанных в master
со временем.
Ответ 3
В рабочих процессах, с которыми я знаком, есть соединительная линия и ветки интеграции, а также ветки функций
Я перестраивался по отношению к "производным" ветвям. (по производным ветвям, я имею в виду направление AWAY из ствола) и слияние к ветвям интеграции.
Мне нравится, что я всегда работаю в ветке, которая имеет ту же историю, что и ветка, с которой я буду интегрироваться. Мне нравится, что слияние становится быстрым, поэтому я знаю, что то, что я только что слил, точно такое же, как и то, что я только что тестировал в своей ветке.
Ответ 4
Когда 2 разработчика присоединяются к одному и тому же репо (это приведет к конфликту), вы можете объединить 2 коммита, создав слияние или вы можете переустановить 1 из коммитов (ваш) поверх другого фиксации. всегда лучше переустанавливать вместо генерации слияния.