在企业版github中模拟tfs样式的变更集
我有三个环境;在我们使用Team Foundation Server的前一个模型中,我们将有三个代码分支来匹配这三个环境中的每一个。p> 开发人员将在本地工作,当他们的代码完成后,他们会将其签入dev分支。签入时,TFS会自动创建一个称为变更集的东西。这个签入将启动文件到代码中的构建,然后将其部署到开发环境中 当开发人员对dev中的代码感到满意时,他们只会将变更集合并到测试分支中。他们会列出所有未合并到测试中的可用变更集的完整列表,他们会选择自己的变更集并将其检查到测试分支中。同样,这将启动构建,输出文件将部署到测试中 一旦QA对更改满意,开发人员就会将此更改集合并到prod分支中。启动构建,文件将部署到临时区域。开发人员和QA会将这些文件升级到prod 所有这些都允许多个开发人员使用这种变更集思想处理相同的文件。当一个特定的变更集(或一组变更集)被合并到另一个环境中时,只有这些变更才会被合并 在我对git相对较新的接触中,我似乎找不到从一个分支到另一个分支选择特定的“拉请求”(我假设它类似于TFS变更集)的方法。当我尝试从一个分支向另一个分支发出拉请求时,它不仅要拉入我的拉请求,还要拉入其他开发人员在较低分支中发出的每个其他拉请求。什么是实现这一点的神奇方法在企业版github中模拟tfs样式的变更集,github,tfs,changeset,Github,Tfs,Changeset,我有三个环境;在我们使用Team Foundation Server的前一个模型中,我们将有三个代码分支来匹配这三个环境中的每一个。p> 开发人员将在本地工作,当他们的代码完成后,他们会将其签入dev分支。签入时,TFS会自动创建一个称为变更集的东西。这个签入将启动文件到代码中的构建,然后将其部署到开发环境中 当开发人员对dev中的代码感到满意时,他们只会将变更集合并到测试分支中。他们会列出所有未合并到测试中的可用变更集的完整列表,他们会选择自己的变更集并将其检查到测试分支中。同样,这将启动构建
注意:不幸的是,我们没有“发布”的概念。我们有五个scrum团队在一个超过200页的网站上工作。每个scrum团队都有自己的sprint,可以在sprint期间发布多个scrum故事。我们内部只有一个开发环境、一个测试环境和一个PROD环境。这五个scrum团队不仅使用我们的环境,而且其他各种团队也使用这些开发/测试/生产站点与我们销售的应用程序进行集成,并进行客户帐户管理和购买。我们不能改变这一基础设施 注意:这不是为了讨论这种“变更集”方法是否正确。这是一个如何在github/git中实现这种行为的问题
注意:我们是一组基于scrum的敏捷团队。我们从故事开始工作。我们的25多名开发人员组成的大型团队可以在任何时候积极开发多达60个故事。当一个故事准备好用于prod时,我们将其作为一个原子单元推广到prod环境中。因此,将变更集视为一个故事。您以前的行为是不正常的。虽然并不罕见: 在Git中,您最有可能要做两件事。第一个是遵循Git流程: 一旦有了这些,您就可以考虑为二进制文件而不是源文件创建部署管道。您应该从MASTER进行构建,并且该构建将贯穿您的环境。很高兴在这里和离线讨论。我有两个想法:
develope
develop
是“完成特性”——不是“完成特性”,而是“特性完成”。当我们认为是发布的时候,我们会转向一个新的release/someversion
分支(名称与发布名称相匹配),然后与QA合作来强化发布。release/someversion
分支上的提交只是错误修复。一旦它能够很好地部署,我们将master
分支升级到发布分支,并将其投入生产<代码>母版然后表示生产中的内容。在部署时,我们还将release/someversion
合并到develope
中,这样bug修复就进入了开发的主线。然后,项目经理/产品所有者可以将develope
分支视为“最新的”,开发人员可以继续使用其功能分支,直到功能完成。(提示,将功能缩小,例如一小时或一天。功能不是发布版。)