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


85

我已经使用git flow了一段时间了。我很好奇了解一个特定的用例。

对于我的一个项目,我有一张新网站功能的门票。此票证取决于许多子任务。我想为主票证创建一个功能分支,然后为每个子任务从父功能分支创建一个功能分支。

假设我有票证PROJ-500并为其创建了一个功能分支

git flow feature start PROJ-500

然后我想整合门票PROJ-501通过PROJ-515PROJ-500整个事情纳入前develop。我有办法做类似的事情吗

git flow feature start PROJ-511 -b PROJ-500

然后,随着时间的推移,这些子任务就完成了,当它们的功能完成时,分支合并到中PROJ-500

git flow feature finish PROJ-511

上面的命令将合并PROJ-511PROJ-500

并且一旦所有子任务完成,PROJ-500便会完成并合并到中develop

这样,新的网站功能就可以集成为一个整体,而不是零散的开发。


这不是吗?git flow feature start PROJ-511 PROJ-500?您在评论中发布的指向DerekS答案的链接建议这样做。
保罗·希克斯

Answers:


117

您可以通过以下方式创建子功能分支

git flow feature start PROJ-511 feature/PROJ-500

但是您不能使用GitFlow工具将分支合并回主要功能分支,因为如果您这样做

git flow feature finish PROJ-511

该功能将合并到中develop不支持Ergo子功能,您需要手动进行。

替代方案:但这不是新要求。还有一个未解决的问题,还有一个fork项目声称支持将精加工功能添加到分支之外的分支中develop。我还发现了具有该功能的实现的请求请求。您可能想尝试该修改,看看是否满意。


更新2019-12-13:正如用户MatějKříž在其评论中提到的那样,用户Tony Chemit在我的几个月后在这里写了一个答案,指出gitflow-avh可以替代原始gitflow产品。它使用上述语法开箱即用地支持子功能。几年过去了,如今,AVH版已成为Windows Git常规安装的一部分,我刚刚在本地机器上对此进行了验证,并测试了子功能选项。即对于Windows用户,它仅在Git安装后立即可用。


1
@pymarco:感谢您接受答案。不过我很好奇:您是否尝试过任何其他选择?如果是这样,结果是什么?它能按预期工作吗?也许其他读者可以从您的经验中学到一些东西。:-)
kriegaex 2014年

抱歉,但是我还没有时间回到这一点。我会在某个时候尝试。
pymarco'2

3
为什么要投票?Downvotes旨在用于写得不好,草率的答案,表明没有研究工作或知识的迹象。不管怎样,谢谢。
kriegaex

如果您使用gitflow-avh版本,请在stackoverflow.com/a/29353800/472611 @ tony-chemit下方
–MatějKříž19年


11

如前所述,我们可以使用任何具有以下功能的基本分支来启动新功能:

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 

9

更新(2020年11月5日):由于在较新的答案注意这里,这是有可能与已经取代了原来的git流gitflow-AVH。

===================

原始答案:

我认为git flow中没有针对此的方法,但是仅使用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

2
感谢Derek的回应。是的,我可以遵循该工作流程。但是git flow封装了许多我喜欢用于子功能开发的命令和完整性检查。例如,这里是git-flow-feature的链接-github.com/nvie/gitflow/blob/develop/git-flow-feature
pymarco 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.