У вас есть следующие варианты.Исходя из вашего вопроса, я думаю, что, возможно, вам нужна опция Merge + squash в master , так как это приведет к новой фиксации на master
, содержащей все изменения, которые вы сделали в feature
ветке, иКажется, это то, чего вы хотите достичь, но я объясню и другие варианты, на тот случай, если вы предпочитаете другой подход.
Объединение feature
ответвление в master
git checkout master
git merge feature
Объединение feature
ветвь в master
после включения master
ветвь меняется в feature
ветвь
git checkout feature
git merge master
# Resolve merge conflicts if needed & git commit
git push
git checkout master
git merge feature
# Conflicts are not possible here,
# since they would have been already resolved in previous merge
git push
Слияние + сквош feature
ветвь в master
.
Это создает новыйкоммит на master
, содержащий все изменения, которые вы вносите из ветки feature
.Недостаток: feature
коммиты ветви не содержатся в master
ветке.
git checkout master
git merge --squash feature
git commit
git push
Перебазировать всю ветку feature
на master
Недостатки:
- Все коммиты ветки
feature
переписываются поверх главной ветки.Поэтому коммиты ветки feature
не будут отображаться как содержащиеся в ветке master
после перебазирования. - В конечном итоге вам придется разрешать слияние конфликтов более одного раза в разных коммитах.
- Вы теряете историю, и вы увидите все коммиты ветки
feature
в одну строку
Итак, рассмотрим один из приведенных выше вариантов.
git co master
git rebase feature
git push
Squash feature
ветвь и затем объединение ее в master
.
Недостаток: вам нужно переписать историю удаленных, если ваша ветвь feature
уже передана на удаленную.Это обычно не рекомендуется.Подробнее см. https://stackoverflow.com/a/55824162/6939011