Ответ 1
Попробуйте git rebase --onto со следующим синтаксисом:
Чтобы внести изменения Branch2 в мастер без включения Branch1
git rebase --onto master branch1 branch2
Соответствующий вывод из git help rebase
:
Вот как вы должны перенести ветку темы на основе одной ветки в другую, чтобы сделать вид, что вы разветкили ветку темы из последней ветки, используя
rebase --onto
.Сначала давайте предположим, что ваша тема основана на ответвлении. Например, функция, разработанная в теме, зависит от некоторых функций, которые можно найти в следующем.
o---o---o---o---o master \ o---o---o---o---o next \ o---o---o topic
Мы хотим сделать тему разветвленной от ветки мастера; например, потому что функциональность, от которой зависит тема, была объединена в более стабильную основную ветку. Мы хотим, чтобы наше дерево выглядело так:
o---o---o---o---o master | \ | o'--o'--o' topic \ o---o---o---o---o next
Мы можем получить это с помощью следующей команды:
git rebase --onto master next topic
Имейте в виду риски и недостатки перебазирования, упомянутые здесь: http://git-scm.com/book/en/Git-Branching-Rebasing.