Это просто, с rebase вы говорите, что используете новую ветку в качестве новой базы для вашей работы.
Если у вас есть ветка master
и вы создаете ветку для реализации новой функции, скажем, вы назовете его cool-feature
, конечно, главная ветка является базой для вашей новой функции.
Теперь в определенный момент вы хотите добавить новую функцию, реализованную в ветви master
. Вы можете просто переключиться на master
и объединить ветвь cool-feature
:
$git checkout master
$git merge cool-feature
, но таким образом добавляется новая фиктивная фиксация, если вы хотите избежать спагетти-истории, которую вы можете переустановить:
$git checkout cool-feature
$git rebase master
, а затем объединить его в master
:
$git checkout master
$git merge cool-feature
На этот раз, поскольку ветвь темы имеет те же самые коммиты мастера плюс фиксации с новой функцией, слияние будет просто быстрой перемоткой вперед.