【问题标题】:Git philosophy: how to get "master" branch to "production" branch?Git哲学:如何将“主”分支变为“生产”分支?
【发布时间】:2012-11-06 02:42:45
【问题描述】:

很确定我误解了 git。

我的目标

  • 我在 github 上有一个带有“master”分支的私人仓库。
  • 我还想拥有一个生产分支,我会将所有更改从 master 推送到该分支。
  • 然后我想将它连接到 Azure 并告诉 Azure 从生产分支自动部署。

问题

我怎样才能最好地做到这一点?最初我认为它与“git push”有关,但我相信这是针对远程存储库的,所以我现在想知道将“master”分支合并到“production”分支的最佳实践是什么。

或者,我认为整个事情都错了吗?

谢谢 - 期待我的 Subversion 日子在我身后。

【问题讨论】:

    标签: git deployment version-control azure github


    【解决方案1】:

    (因为我想分享“丰富的信息”;)...)

    当谈到masterproduction 分支时,您所看到的是合并工作流程

    您可以使用任何您想要的版本控制系统工具来定义您需要的工作流程,并且在开发生命周期管理方面,此 TFS(Team Foundation Server)集合中描述了最完整的合并工作流程集合之一,详细在其TFS Brancing Guide 中并在此问题“Servicing Branch in Standard Branch Plan”中进行了说明。
    更接近 git,git flow 是另一个非常流行的合并工作流程。

    但是您使用的是 DVCS,它的分布式 方面引入了另一个(正交)工作流程:发布(您的git push -u origin prod)。见“Source Control - Distributed Systems vs. Non Distributed - What's the difference?

    发布是发布管理的一部分,与合并是开发的一部分。
    通过将master 合并到prod,您可以冻结在开发中巩固的内容,并将其标记为要发布。
    通过将其推送到 GitHub,您就开始了发布过程。

    【讨论】:

      【解决方案2】:

      当你的 master 分支准备好投入生产时,你将它合并到生产分支,然后将这个生产分支推送到 github repo。

      【讨论】:

      • 简而言之,解决了我的直接解决方案。感谢您的澄清!
      • 你的意思不是反过来吗? master是直播网站,生产分支是你编码的地方?
      • master 总是很困惑。从技术上讲,您可以选择根本不使用它。有 {develop} - {test} - {production}。非常简化..来自 CI/CD,可以是 {develop} - {unit} - {integration} - {production},生产分支每天都在构建/部署。您从具有功能/AAA 的 {develop} 分支进行开发,然后将其合并回您可以放入管道 (jenkins/gitlab) 的位置,该管道 (jenkins/gitlab) 从开发中提取(通过触发 webhook)并进行测试。通过测试推送到产品。非常简化的版本。
      【解决方案3】:

      我建议您查看branching workflows 的 git 页面,以建立您的存储库管理计划。此外,Von C 分享了有关 git 生态系统的大量信息。浏览他的答案可能会非常有用。 This post 对于跟踪远程分支也非常有帮助。

      【讨论】:

      • 感谢您提供更多信息!这些指南将证明非常有价值。
      猜你喜欢
      • 2017-10-11
      • 2011-06-02
      • 1970-01-01
      • 2021-08-02
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      相关资源
      最近更新 更多