Переместите самые revent коммиты в другую ветку

Вот такая ситуация в моем репозитории git: у меня есть две ветки "dev" и "fix", и мне нужно переместить три самых последних коммита из ветки fix в ветку dev. Голова находится на последнем коммите в ветке dev (E). Итак, мне нужно уйти от этого:

dev   A
       \
fix     B - C - D - E
                    ^HEAD

к этому:

dev    A - C - D - E
        \          ^HEAD
fix      B

Буду признателен за любую помощь в том, как сделать это с помощью команд git (это автономный репозиторий)

1 ответ

Это просто

git checkout dev
git cherry-pick fix~3..fix # apply the last 3 revisions from fix
git checkout fix
git reset --hard HEAD~3 # set fix 3 revisions behind

Вы историю переписываете, если это не очевидно, это больше похоже на:

dev    A - C' - D' - E'
        \            ^HEAD
fix      B
Другие вопросы по тегам