Git flow - 从另一个功能分支创建功能分支

时间:2014-04-08 21:41:04

标签: git git-flow

我现在已经使用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

通过这种方式,新网站功能可以集成到单个单元而不是零碎的单元中。

4 个答案:

答案 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