寻找有关如何设置git以支持多个开发人员开发功能的建议,以及我们如何推动我们的各种环境,如dev,qa和uat。
我在考虑这样的事情:
dev_branch
- new features get a feature branch i.e. dev_branch_feature_x
- once feature is completed, it gets merged into the dev_branch
- dev_branch then merges into main_branch
main_branch
- code must be merged into main to push to UAT
- once uat is signed off, it gets pushed to production
有一个问题是,有一个feature_branch是否意味着我们需要为每个feature_branch分别设置dev和qa环境?
如果2位开发人员正在处理某项功能,他们无法直接将更改推送到QA环境,因为他们会互相编写。 而且我不确定他们是否可以将两个更改合并到同一个分支中,然后推送它们可能会发生冲突。
上述分支模型是否可行或您是否建议其他内容?
答案 0 :(得分:1)
http://nvie.com/posts/a-successful-git-branching-model/
中介绍了一种非常流行的与git一起使用的工作流程基本上,您最成功的做法是拥有一个长期运行的分支上的开发环境,如果您愿意,可以是主干,或者可以是一个单独的分支,在本文档中名为“develop”。
问题分支和开发分支将从此分支,开发和测试,然后在作者认为它们稳定时合并。然后,如果您需要在开发中进行任何测试以使其符合下一个测试级别的要求,那么您可以标记并构建它并将其部署到测试环境中。
当你接近一个版本时,你将从正在运行的开发分支分支一个发布分支,然后只触及它以提高它的发布稳定性。这使它成为一个死胡同,但是后来应用热修复的好地方。
如果你在其中一个地方想要将trunk作为部署到生产环境的最新版本,那么无论什么时候通过所有测试并将其部署到生产环境,你都可以将它合并到主干上。这是选择;在我看来,它是不必要的开销和复杂性,但它是一个经常遇到的管理需求。