Неудачный коммит слияния Cherry-pick с пустым коммитом

У меня есть несколько веток, и я хочу, чтобы изменения из второй ветки появлялись в первой ветке.

Это, вероятно, лучше всего описать с помощью диаграммы:

          X - Y - Z    (branch-2)
         /         \
A - B - C - D - E - F  (master)
 \     
  G - H - I            (branch-1)

Я хочу слить X, Y, Z в branch-1 без привлечения B а также C,

Я пытался выбрать вишни слияния-коммит Fи хотя я указываю правильного родителя (я думаю), вишня не может быть выполнена с помощью: The previous cherry-pick is now empty, possibly due to conflict resolution.

Должен ли я вишня выбрать X^..Z спектр? Или есть лучший способ сделать это?

1 ответ

Решение

Вишневый выбор один за другим может быть решением, если это branch-2 маленький.

Для перемещения больших веток я бы сделал это:

git checkout branch-2
git branch   moving/branch-2 # new branch to work with
git rebase --onto  branch-1 [sha_of_c] moving/branch-2 # move commits of branch ontop of the other 
git checkout branch-1 
git reset --hard  moving/branch-2 # set branch lable to new HEAD
git branch -d  moving/branch-2 # clean up

Как предложено @quetzalcoatl в комментариях, вы можете использовать -i обманывать rebase так что вы можете проверить, что правильные коммиты копируются, прежде чем делать это.

С другой стороны, если что-то пошло не так, вы можете просто вернуться moving/branch-2 в branch-2 и начать все сначала.

Другие вопросы по тегам