(мерзавец): Как принести определенную фиксацию от восходящего ответвления?

У меня есть это (мерзавец repo):

A--B--C--D ->master
   \--E    ->dev

И я хочу принести только фиксацию D переходить dev (D не зависит от C), так, чтобы:

A--B--C--D  ->master
   \--E--D' ->dev

Но D' не должен быть добавлен к ведущему устройству после слияния:

A--B--C--D--E' ->master
   \--E--D'/   ->dev

Это вызвано тем, что я хочу принести только обновление файла, не имея необходимость загрязнять dev с новыми файлами это C (который представляет другого, большое слияние) добавляет.
Я предполагаю, что должен использовать git rebase, но я не могу предположить как.

10
задан VonC 16 February 2010 в 13:49
поделиться

2 ответа

Используйте git cherry-pick с обновленной рабочей ссылкой

0
ответ дан 4 December 2019 в 00:24
поделиться

Вы хотите использовать git cherry-pick . Я предполагаю, что ваш пульт называется «origin» (но замените реальное имя удаленного репо на «origin»). Я предполагаю, что у вас есть две локальные ветки с именами master и dev . Я предполагаю, что фиксация D находится на origin / dev . Вы можете выбрать D следующим образом:

$ git fetch origin             # Assuming the upstream remote's name is "origin"
$ git checkout dev             # Check out your local "dev" branch
$ git cherry-pick $COMMIT_D    # Replace "COMMIT_D" with the hash for commit D

Теперь у вас будут только изменения из коммита D в dev .

12
ответ дан 4 December 2019 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: