我现在已经使用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
。
通过这种方式,新网站功能可以集成到单个单元而不是零碎的单元中。
答案 0 :(得分:97)
您可以通过
创建子功能分支git flow feature start PROJ-511 feature/PROJ-500
但你不能使用GitFlow工具将分支合并回主要功能分支,因为如果你这样做
git flow feature finish PROJ-511
该功能将合并到develop
。
替代方案:但要求并不新鲜。有一个open issue以及一个fork project声称支持在develop
以外的分支中完成功能。我还找到了一个pull request,其中包含该功能的实现。您可能希望尝试修改并查看是否对此感到满意。
答案 1 :(得分:22)
据我了解,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 已合并到 feature / PROJ-500 。
答案 2 :(得分:8)
我不认为在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
答案 3 :(得分:8)
如前所述,我们可以使用
的任何基本分支启动新功能git flow feature start PROJ-511 feature/PROJ-500
要完成子功能,我们可以临时更改git flow配置以使用我们的功能分支而不是develop
:
git flow config set develop feature/PROJ-500 && git flow feature finish PROJ-511
这样,git flow就会运行所有命令和健全性检查。最后,要恢复配置,我们可以运行
git flow config set develop develop