How do you keep changes separate and isolated across multiple deployment environments in git?
在我的工作场所,我们正在尝试基于Git设计工作流,以处理我们的部署和代码更改。
我们有一个Java EE Web应用程序和3个部署环境(测试,质量保证和生产)。我们还有一个Jenkins CI实例来处理构建和部署。
对应用程序的代码(在分支中)进行更改时,我们需要能够选择要升级到质量检查和生产的代码。有些人可能会进入质量检查,然后再不投入生产。
在升级和合并时,我们还需要避免意外地在您的分支中包含其他人的代码。
分支的"提升"也需要自动化-这样,分析师可以选择分支或变更集,然后jenkins或其他脚本可以进行实际的合并和部署。我在这里看到合并冲突是一个问题...
您如何建议建立一个(a)Git存储库来满足这些要求?
正如我在"使用Git进行代码升级"中提到的那样,请不要忘记分支不是隔离开发工作的唯一方法(例如跨环境的升级)。
您自己也有git存储库,并且可以将git存储库分配给特定角色(" Test "存储库," QA " repo ",依此类推)
与Gitolite结合使用,可以保护那些不应该直接进入开发生命周期中特定阶段的用户访问这些存储库。
还可以结合受保护的提交,将请求推送到测试仓库,该仓库将:
- 如果提交未通过编译和/或某些单元测试,则拒绝您的提交
- 或接受它,然后将其自动推送到质量检查仓库进行审核。