Ответ 1
как насчет создания патча, проверка на ветку develop
и применение патча?
git checkout new-feature2
git format-patch new-feature
git checkout develop
git am name-of-the-patch.patch
Я обычно создаю новую ветку из разработки
git checkout -b new-feature develop
то после последнего коммита я снова объединился для разработки
git checkout develop
git merge new-feature
но на этот раз я создал new-feature2
brach из new-feature
, и теперь я не могу слиться с develop
.
Есть ли способ переключить родительский new-feature2
на develop
?
(Файлы, над которыми я работал, были той же версией, что и в develop
, поэтому это не должно требовать слияния.)
как насчет создания патча, проверка на ветку develop
и применение патча?
git checkout new-feature2
git format-patch new-feature
git checkout develop
git am name-of-the-patch.patch
Вы можете перегрузить свою функцию на основную базу:
git checkout new-feature2
git rebase --onto develop new-feature new-feature2
# rebase the stuff from new-feature to new-feature2 onto develop branch
или сделайте это вручную, используя вишневый выбор
git checkout develop
git log --oneline new-feature..new-feature2
# for every commit call:
git cherry-pick <commit-id> # note, newer versions of cherry-pick allow multiple commits at once
Вы видели интерактивную перезагрузку?
git rebase -i develop
- довольно простое решение - оно отобразит все ваши фиксации из этой ветки. Просто удалите строки "pick" из нежелательной ветки.
Вы также можете использовать git diff
и git apply
:
git diff new-feature..new-feature2 | git apply -