在过去的几个月里,我们一直在松散地关注git flow,但是已经遇到冗长的质量保证等待的问题.
这是我们的流程:
>开发人员在功能分支上本地开发
>当团队认为该功能准备就绪时,它会合并到dev中,推送到dev服务器(Codeship& rsync)
>客户批准功能
>功能合并为主人,推送到prod
不幸的是,客户有时可能需要数周才能批准功能.这可能是由于积压,内容创建,员工流动等.
但是,与此同时,新功能可能已合并到dev中,并被推送到开发服务器进行审批.假设第二个功能获得批准,需要尽快部署(当然).如何在不带第一个功能的情况下从dev中获取第二个功能?
最佳答案
How am I going to get that 2nd feature off of
dev
without bringing the 1st feature?
你不会.
但是一旦dev合并到master,you can revert the 1st feature commits就从master中合并,以便记录第一个功能还没有被批准.
这比第二个功能中的cherry-picking the commits更安全,因为它会将这些提交从dev复制到master,并使将来的合并更复杂.
如果经常重复,则工作流程不适合当前的开发过程.
如果最好,如果:
>您有一个集成分支,您可以在其中合并任何要批准的功能(在开发服务器上).
> dev仅使用功能分支中的已批准功能(在开发服务器上)进行更新.
换句话说,您将功能分支合并两次:
>一旦完成正式客户审查和批准该功能
>一次在dev中,使用第二个(并且更快)的客户端检查,以查看该功能是否仍然按预期工作(因为它不在与集成中的代码库相同的代码库中合并)
从开发人员,您恢复正常的发布管理流程(推动生产)