У меня две ветки (и мастер). Филиал 2 основан на Филиале 1 на основе мастера. Я отправил отчет 1 для обзора, у него были некоторые изменения, я переустановил некоторые из этих изменений в историю и объединил результат в мастер.
Теперь мне нужно переустановить Branch 2 на вершине мастера, чтобы подготовить его для просмотра/слияния.
Проблема в том, что Branch 2 все еще содержит исходные коммиты Branch 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
- - - - - - - - -