Подтвердить что ты не робот

Git применить изменения от одного фиксации к другой ветки

Я хочу сделать что-то похожее на git rebase, но не сворачивая параллельные коммиты.

Скажем, у меня есть следующие коммиты:

  B (bar)
 /
A-C-D (foo)

Теперь я хочу принять изменения, введенные D в C в ветки foo, и применить их к B в строке ветвления. так что я получаю следующее:

  B-E (bar)
 /
A-C-D (foo)

Если разница между коммитами B и E равна разности между коммитами C и D. Возможно ли это? Есть ли способ сделать это без создания патча?

4b9b3361

Ответ 1

Да:

git checkout -b mergebranch B
git cherry-pick D

Ответ 2

Если последнее фиксация на ветке, которую вы хотите вычеркнуть из (foo в примере), является фиксацией слияния, вы можете указать конкретную фиксацию на вишневый выбор, используя git cherry-pick branchname~1, чтобы получить фиксацию, которая был родителем слияния.

Ответ 3

В моем случае мне нужно было применить изменения конкретных коммитов другой ветки. Я сделал это, выбрав вишню так: git cherry pick COMMIT-HASH.