Вы должны слить или выбрать вишню в мастер, а не перебазировать.
Что касается вопроса, то это вопрос порядка.Rebase подразумевает, что вы хотите изменить историю, чтобы ветвь темы отображалась перед мастером в истории.Если вы объединяете или выполняете вишневые коммиты, то они добавляют ваши коммиты поверх мастера.
Таким образом, полный цикл будет выглядеть примерно так:
git checkout -b vacation
[make changes]
git commit -a -m "Commit message"
git checkout master
git merge vacation
git svn dcommit
Чтобы объяснить ребаз более подробно, пример измои персональные настройки: в дополнение к мастеру я также поддерживаю работу локального филиала, которую я использую в качестве основы для локальной конфигурации нашего проекта.В нем есть такие вещи, как файлы пользовательских свойств, которые я никогда не хочу фиксировать.Мне нужно синхронизировать это с веткой master, поэтому я делаю это, начиная с master:
git svn rebase
git checkout work
git rebase master
Теперь git восстанавливает историю рабочей ветки, помещая все локальные коммиты конфигурации в начало стека.В буквальном смысле воссоздает ветку BASEd на мастер ветке.Если бы я выпустил
git merge master
вместо того, чтобы перебазировать, то результат для глаза ламена был бы таким же, но история была бы совсем другой.Две истории будут разрешены, что может привести к коммитам слияния, вместо одной, основанной поверх другой.