github - 将更改应用到两个 Git 分支(发布分支和开发)的最佳实践
问题描述
我在一家目前只有两名开发人员的小公司工作。我不是 GitHub 专家,我知道我们当前的工作流程不一定是标准的。我不打算重新设计我们的整个工作流程,只是针对这一特定挑战的合理解决方案:
我们有两个主要分支:Development 和 Master。我们使用 Master 分支进行客户端安装,因此它始终位于开发之后,直到我们在主要版本之前将两者合并。
由于我们的软件和目标市场的性质,重要的是我们能够在版本之间定期将特定客户的自定义代码应用到主分支,以便在我们安装时可以使用它们。我们还需要将这些更改应用到 Development 分支,以便它们包含在下一个版本中。此自定义代码包含在所有未来的客户端安装/更新中,但只能基于配置设置由特定客户端访问。
我目前的解决方案是基于 Master 分支创建“自定义功能”分支。完成自定义工作后,我们将为 Master 分支和 Development 分支创建一个拉取请求。由于 Master 分支始终具有与开发相同的代码,只是处于早期状态 - 在我看来,它应该可以工作。但就像我说的,我不是 GitHub 的专家,而且我确信这可能出于各种原因很危险。
我知道将这些类型的定期更改应用于实时发布分支是有风险的。然而,由于我们软件的性质,当我们为他们安装时,我们的大多数客户都希望至少进行少量的定制。
编辑
我知道这与这个问题非常相似: 避免将主合并到开发分支
但我建议从发布分支而不是开发分支分支,所以我认为这是一个不同的情况(我承认该问题中的一些概念在我脑海中浮现)。如果这被认为是重复的,我深表歉意。
解决方案
我建议熟悉 GitFlow,因为它可能会解决您的问题。https://datasift.github.io/gitflow/IntroducingGitFlow.html
基本上,你是对的,这样做的正确方法是从 master 分支,在分支中创建更改,然后合并到 master 并开发。按照附加链接中的“修补程序”部分进行操作。
推荐阅读
- angular - Angular 社交分享 Facebook
- php - 如何通过 created_at 将一组行排序在一起?
- javascript - 水平堆积条形图v6?
- django - 无法分配“
": "Post.created_by" 必须是 "User" 实例 - struct - 使用带有原始结构字段子集的结构方便地更新结构的字段(Rust 中的数据传输对象)
- scala - 如何修复Scala http请求addHeader不起作用
- indexing - Databricks (Spark SQL) 表的索引
- amazon-web-services - 使用 AWS CDK 时 Lambda 函数无法实例化
- unity3d - Autodesk Forge API 未转换 3D 模型元素
- csv - 如何在没有内置数据结构或库的情况下对 CSV 电子表格进行排序并将多列相乘?