Git: создал новую ветвь из неправильной ветви
Я обычно создаю новую ветку из develop
git checkout -b new-feature develop
затем после последнего коммита я сливаюсь обратно в develop
git checkout develop
git merge new-feature
но на этот раз я создал new-feature2
brach от new-feature
и теперь я не могу слиться в develop
.
есть ли способ, чтобы перейти new-feature2
С родителя develop
?
(файлы, над которыми я работал, были той же версии, что и в develop
таким образом, это не должно требовать слияния.)
4 ответов
вы можете перебазировать свою функцию на основную базу:
git checkout new-feature2
git rebase --onto develop new-feature new-feature2
# rebase the stuff from new-feature to new-feature2 onto develop branch
или сделать это "вручную" с помощью cherry pick
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" из нежелательной ветви.
Как насчет создания патча, проверка на develop
ветвь и применить патч?
git checkout new-feature2
git format-patch new-feature
git checkout develop
git am name-of-the-patch.patch