#git
#git
Вопрос:
Когда я читаю команду rebase в документации git, у меня возникает вопрос. Возможно ли переназначить три коммита x x x в разделе «далее» на мастер?
o---o---o---o---o master
o---o---x---x---x next
перебазируйте в
o---o---o---o---o---x---x---x master
o---o next
Ответ №1:
Здесь действительно нужны два шага. Сначала сделайте rebase --onto
, чтобы перенести 3 лучших коммита из next
в master
:
master: o1 -- o2 -- o3 -- o4 -- o5
next: o6 -- o7 -- x1 -- x2 -- x3
Используйте:
git rebase --onto o5 o7
Затем удалите 3 верхних коммита из next
ветки:
# from next
git reset --hard HEAD~3
Комментарии:
1. приятно
git rebase --onto o5 o7
!
Ответ №2:
для этой цели я бы посмотрел на
git cherry-pick
для новых коммитов на master
и
git reset --hard
для очистки этих коммитов на next
сценарий может выглядеть следующим образом:
git switch master
git cherry-pick next~2 next~1 next~0
git switch next
git reset --hard HEAD~3
Комментарии:
1. Имейте в виду, что
o
коммиты могут изменить то, что на самом деле делаютx
коммиты, поэтому вы можете получить не то, что ожидаете, или вам придется выполнить некоторое ручное редактирование, чтобы получить их правильно