Я предполагаю, исходя из имен, что develop
будет похоже на ваш master
, то есть вы создаете функции в feature1
, feature2
и т. Д., И все это объединяется в develop
.
В этом случае вы должны оформить develop
, а затем при develop
выполнить:
git merge feature1
Если возникнут какие-либо конфликты, вам будет предложено их разрешить (IntelliJ IDE имеет действительно полезную функциюдля этого). После разрешения конфликтов вы завершаете слияние с другим коммитом.
Перебазировка предназначена для сценария, в котором вы хотите добавить коммиты из определенной ветви «поверх» коммитов из другой ветви.
Например, у вас есть следующие коммиты в хронологическом порядке (по убыванию):
feature1 - commit D
develop - commit C
feature1 - commit B
develop - commit A
Если вы хотите, чтобы коммиты из develop
применялись к базе кода раньше, чем коммиты из feature1
, вы можете перебазироватьfeature1
on develop
.
В этом случае вы извлекаете feature1 и затем запускаете:
git rebase develop
Вам также необходимо разрешить конфликты, если они есть, тогда вы можете git add
Снова файлы и git rebase --continue
для завершения перебазирования.
После этого журнал фиксации будет выглядеть так:
feature1 - commit D
feature1 - commit B
develop - commit C
develop - commit A
Даже если коммит B старше коммита C, он будетприменяется после, из-за перебазирования.
Затем вы можете объединиться с develop
, чтобы ввести там коммиты feature1.