у меня 2 ветки
a -- b -- c -- d -- e -- f -- g -- h <-- master
a -- b -- c <-- Branch1
мне нужно применить коммиты e, f и g к Branch1
Пробовал с:
git rebase --onto gSha1 eSha1 hSha1
после оформления заказа на Branch1, и это не сработало (как сказано здесь)
пытался с git cherry-pick eSha1^..gSha1
, но это тоже не сработало (как упоминалось здесь)
ветка 1 находится сразу за мастером. У них идентичные хэши коммитов. Они не объединены, я неправильно понял схему
Что значит применить? Что должно произойти с исходными e f и g? А ч?
Если ты хочешь
a -- b -- c -- e -- f -- g
От
E---F---G master
/
D
/
A---B---C Branch1
git rebase --onto branch1 dSha1 gSha1
дам тебе
E'--F'--G' HEAD
/
| D---E---F---G master
|/
A---B---C Branch1
Затем установите Branch1 в HEAD:
git branch -f Branch1 HEAD
D---E---F---G master
/
A---B---C---E'--F'--G' Branch1
Альтернатива
Установите Branch1 в master и перебазируйте Branch1 при фиксации C без D:
git co Branch1
git reset --hard master
git rebase --onto cSha1 dSha1 Branch1
Если ты хочешь
a -- b -- c -- d -- e -- f -- g
(первый заданный вопрос)
переключиться на ветку 1
git checkout Branch1
затем установите Branch1 на g
git reset --hard gSha1
и вот ты вы можете нажать или продолжить
Применяется ли это к фиксации e, f и g из главной ветки в ветку 1?
Branch1 будет a -- b -- c -- d -- e -- f -- g
есть история для применения коммита, просто установите Branch1 на коммит g. Вы можете видеть Branch1 как указатель или метку на g
извините, я изменил свой вопрос
Оформить заказ branch1
, а затем git cherry-pick e f g
. Не используйте диапазон; который сжимает коммиты в один.
Можете ли вы быстро прояснить... ваша диаграмма предполагает, что в какой-то момент Branch1 был объединен с мастером. Так ли это? Или дело в том, что ваш Branch1 находится сразу за мастером? Имеют ли
a
,b
,c
иd
одинаковые хэши коммитов? В этом случае на вашем графике не должно быть линии слияния отd
доd
.