在我的工作场所,我们正在尝试设计一个基于Git的工作流程来处理我们的部署和代码更改。
我们有一个Java EE Web应用程序和3个部署环境(测试,QA和生产)。我们还有一个Jenkins CI实例来处理构建和部署。
当对应用程序的代码(在分支机构中)进行更改时,我们需要能够选择哪些内容被提升为QA和Production。有些人可能会接受质量保证,然后再进入生产阶段。
在推广和合并时,我们还需要免除意外地包含您分支中的其他人的代码。
分支的“促销”也需要自动化 - 分析师会选择分支或变更集,然后jenkins或其他一些脚本会进行实际的合并和部署。我认为合并冲突是一个问题......
您如何建议设置(a)Git存储库来处理这些要求?
答案 0 :(得分:1)
正如我在" Code Promotion with Git"中提到的那样,不要忘记分支机构不是您隔离开发工作的唯一方法(如跨环境推广) )。
你自己也有git存储库,你可以为一个特定的角色分配一个git仓库("测试" repo," QA" repo"等等上)
结合Gitolite,您可以保护这些存储库不被不应该直接推送到开发生命周期某个阶段的用户访问。
还与 guarded commit 结合使用,您可以推送到以下的测试代表: