У меня есть две (частные) ветки, над которыми я работаю.
a -- b -- c <-- Master
\ \
\ d -- e <-- Branch1
\
f -- g <-- Branch2
Немного поработав над этими ветками, я обнаружил, что мне нужны изменения из Branch2 в Branch1. Я хотел бы перенести изменения в Branch2 на Branch1. Я хотел бы закончить со следующим:
a -- b -- c <-- Master
\
d -- e -- f -- g <-- Branch1
Я почти уверен, что мне нужно переместить вторую ветку на первую, но я не совсем уверен относительно правильного синтаксиса и какой ветки я должен был проверить.
Эта команда даст желаемый результат?
(Branch1)$ git rebase --onto Branch1 Branch2
git
git-rebase
feature-branch
Арьен
источник
источник
git rebase -
. см. мой ответ нижеОтветы:
Переключиться на Branch2
Примените текущие изменения (Branch2) поверх изменений Branch1, оставаясь в Branch2:
Что оставило бы вас с желаемым результатом в Branch2:
Вы можете удалить Branch1.
источник
git rebase
во время пребывания в Branch1 перезапишет историю Branch1, чтобы изменения Branch1 превысили изменения, скопированные из Branch2. Это приведет к следующему порядку фиксацииa - b - f - g - c' - d' - e'
.Примечание: если вы были
Branch1
включены, вы с Git 2.0 (Q2 2014) сможете набрать:См совершить 4f40740 по Brian Gesiak
modocache
:rebase
: разрешить-
сокращение " " для предыдущей ветвиисточник
Я знаю, что вы попросили Ребаз, но я бы выбрал коммиты Cherry-Pick, которые я хотел переместить из Branch2 в Branch1. Таким образом, мне не нужно было бы заботиться о том, какая ветка была создана из master, и у меня был бы больший контроль над слиянием.
источник