У меня есть две ветви (и мастер). Филиал 2 основан на Филиале 1 на основе мастера. Я отправил отчет 1 для обзора, у него были некоторые изменения, я переустановил некоторые из этих изменений в историю и объединил результат в мастер.Rebase только часть ветки
Теперь мне нужно переустановить отделение 2 на вершине мастера, чтобы подготовить его для обзора/слияния.
Проблема заключается в том, что в Ветве 2 по-прежнему содержатся оригинальные фиксации ветви 1, которые больше не существуют, поэтому git запутывается. Я попробовал rebase -i, чтобы удалить исходные коммиты Branch 1, но фиксации Branch 2 не основываются на вершине master-before-branch-1.
Что мне нужно сделать, так это взять ветвь 2, сбросить некоторые коммиты и восстановить только оставшиеся фиксации на вершине мастера за одну операцию. Но я знаю только, как делать эти две операции в двух разных шагах.
Как я могу переустановить часть моей ветви на другую ветку, отбрасывая все коммиты, которые не имеют общего происхождения, кроме тех, которые я указываю (например, от HEAD ~ 2 вверх)?
Вот текущее состояние:
master new branch 1
- - - - - - - - - - - | - - - - - - - - -
\
\ branch 1
\ _ _ _ _ _ _ _
\
\ branch 2
\ _ _ _ _ _ _ _
То, что я хочу, чтобы в конечном итоге с:
master new branch 1
- - - - - - - | - - - - - - - - - -
\
\
\
\ branch 2
- - - - - - - - -
Граф ASCII, представляющий состояние вашего репо, поможет. На первый взгляд, я бы сказал, что вы ищете ['git rebase -onto'] (https://git-scm.com/docs/git-rebase). Посмотрите, поможет ли это: http://stackoverflow.com/questions/28715619/how-can-i-rebase-part-of-a-branch-to-the-master-branch/28715930#28715930 – Jubobs
Лучше! См. Также верхнюю часть http://stackoverflow.com/questions/25488138/move-initial-commits-off-master-to-another-branch-in-git/25490288#25490288 – Jubobs
git rebase --onto почти сработало для меня , Я сделал git rebase --onto master --root HEAD ~ 1', но по какой-то причине он выбрал три коммиты, чтобы взять с собой вместо «HEAD ~ 1» и вверх. Кроме того, вместо того, чтобы перезагрузить мою ветку, я сейчас в состоянии состояния HEAD. – Puppy