Git Flow:创建,测试和部署“功能”分支

时间:2014-02-27 22:32:27

标签: git version-control staging git-flow feature-branch

我已经在我的公司使用git-flow了一段时间,并且遇到了令我困惑的某种情况。我正试图找出一种最佳实践,通过git-flow将新功能集成到现有的已发布网站,我需要测试这些功能,然后将它们发布在不同的分组中。

我已经设置了一个临时和生产站点。当我的开发分支看起来很好并且我想将我的更改从master部署到生产站点时,我从我的开发分支部署到暂存站点并运行git-flow版本。只要我可以一次发布所有更改,这样就可以正常工作。我最近有很多客户请求以块的形式发布变更单 - 这意味着我将处理4个功能,他们希望在1周内发布其中2个功能,在2周内发布其他2个功能。我认为只使用git-flow功能分支并“完成”需要一起发布的分支将解决我的问题,但它给我留下了更多的问题

当我为每个新功能创建一个功能分支时,我发现很多次我需要使用一些我已经提交给另一个功能分支的css或js(因为它也与该分支有关)。我还有一种感觉,当我git-flow“完成”这些分支重新开发时,我将不得不处理很多合并冲突(因为他们的提交共享很多相同的文件)。客户还希望看到我正在制作的所有更改的活动版本,当我将它们分成不同的功能分支时,我不知道如何将它们展示在一起,除非我将它们合并或重新组合到开发中分支并推送到临时站点。这会破坏我分批发布它们的机会。我想可能在这个分支上创建另一个分支来测试和重新定义我的功能分支,但是我不确定这是否能解决我的问题,因为我的功能分支在我处理它时仍然是孤立的。

我似乎无法找到任何可以满足这些要求的工作流程,所以我非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我最近做了一些研究,目的是解决同一个问题并确定每个功能的分支"战略。这个名字暗示了很多策略,但是这里有一些很好的文章详细描述了它:

http://www.acquia.com/blog/pragmatic-guide-branch-feature-git-branching-strategy

https://github.com/affinitybridge/git-bpf/wiki/Branch-per-feature-process

希望这有帮助