Git функция создания потока - отделить другую ветвь функции
Я использовал git flow
какое-то время. Мне любопытно узнать о конкретном случае использования.
Для одного из моих проектов у меня есть билет на новую функцию веб-сайта. Этот билет зависит от многих подзадач. Я хотел бы создать ветвь функции для основного билета, а затем для каждой подзадачи создать ветвь функции ветки родительской функции.
Предположим, у меня есть билет PROJ-500, и я создаю для него ветку признаков
git flow feature start PROJ-500
Затем я хочу интегрировать билеты PROJ-501
через PROJ-515
в PROJ-500
, прежде чем интегрировать все это в develop
. Есть ли способ сделать что-то вроде
git flow feature start PROJ-511 -b PROJ-500
Затем сверхурочные эти подзадачи завершаются, и когда их функция закончена, ветвь объединяется в PROJ-500
.
git flow feature finish PROJ-511
Вышеуказанная команда объединит PROJ-511
в PROJ-500
И как только все подзадачи будут завершены, PROJ-500
будет завершен и объединен с develop
.
Таким образом, новая функция веб-сайта интегрируется в разработку как единое целое, а не по частям.
Ответы
Ответ 1
Вы можете создать дочернюю ветвь с помощью
git flow feature start PROJ-511 feature/PROJ-500
Но вы не можете использовать инструмент GitFlow, чтобы объединить ветку обратно в главную ветвь функции, потому что если вы делаете
git flow feature finish PROJ-511
функция будет объединена в develop
. Ergo вспомогательные функции не поддерживаются, вам нужно сделать это вручную.
Альтернативы: Требование не является новым. Существует открытая проблема , а также проект fork, требующий поддержки финишных функций в ветвях, отличных от develop
. Я также нашел запрос pull с реализацией этой функции. Вы можете попробовать эту модификацию и посмотреть, довольны ли вы ею.
Ответ 2
Как я понял, gitflow полностью заброшен.
gitflow-avh заменяет его и предлагает эту функцию (см.
https://github.com/petervanderdoes/gitflow#creating-featurereleasehotfixsupport-branches).
Я просто попробую, и это хорошо работает для меня.
git flow feature start PROJ-511 feature/PROJ-500
git flow feature finish PROJ-511
PROJ-511 был объединен с функцией/PROJ-500.
Ответ 3
Я не думаю, что есть метод для этого в потоке git, но он довольно прост с помощью только git.
git checkout PROJ-500
git checkout -b PROJ-511
...do your PROJ-511 work...
git checkout PROJ-500
git merge PROJ-511
git branch -d PROJ-511
Ответ 4
Как уже упоминалось, мы можем начать новую функцию, используя любую базовую ветвь с
git flow feature start PROJ-511 feature/PROJ-500
И чтобы завершить вспомогательную функцию, мы можем временно изменить конфигурацию потока git для использования нашей ветки функций вместо develop
:
git flow config set develop feature/PROJ-500 && git flow feature finish PROJ-511
Таким образом, поток git выполняет все команды и проверки работоспособности. Наконец, чтобы восстановить config, мы можем запустить
git flow config set develop develop