Переместить последовательный набор коммитов из одной (локальной) ветви в другую - PullRequest
2 голосов
/ 12 апреля 2010

Есть ли способ переместить последовательный набор коммитов из одной (локальной) ветви в другую? Я много искал и до сих пор не нашел четкого ответа на то, что хочу сделать.

Например, скажем, у меня есть это:

master A---B---C
                \
feature-1        M---N---O---P---R---Q

И я решил, что последние 3 коммита будут лучше:

master  A---B---C
                 \
feature-1         M---N---O
                           \
f1-crazy-idea               P---R---Q

Я знаю, что могу это сделать, и это работает:

$ git log --graph --pretty=oneline (copying down sha-1 ID's of P, R, Q)
$ git checkout feature-1
$ git reset --hard HEAD^^^
$ git checkout -b f1-crazy-idea
$ git cherry-pick <P sha1>
$ git cherry-pick <R sha1>
$ git cherry-pick <Q sha1>

Я надеялся, что вместо этого будет более краткий способ сделать это, возможно, с помощью git rebase, хотя мне не очень повезло.

Любое понимание будет с благодарностью.

Спасибо

Джейми

1 Ответ

6 голосов
/ 12 апреля 2010

Есть (git rebase --onto), но в этом случае вам не нужно их перемещать. Оформить заказ feature-1, создать новую ветку f1-crazy-idea в том же месте (но остаться на feature-1) и выполнить полный сброс назад 3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...