将更改应用于两个 Git 分支(发布分支和开发分支)的最佳实践

Best practice for applying a change to two Git branches (Release branch and Development)

我在一家目前只有两名开发人员的小公司工作。我不是 GitHub 方面的专家,而且我知道我们当前的工作流程不一定是标准的。我不打算重新设计我们的整个工作流程,只是针对这一特定挑战的合理解决方案:

我们有两个主要分支:开发和硕士。我们使用 Master 分支进行客户端安装,所以它总是落后于开发,直到我们在主要版本之前将两者合并。

由于我们软件和目标市场的性质,我们能够定期将特定客户端的自定义代码应用到版本之间的 Master 分支,以便在我们安装时可以使用它们,这一点对我们来说很重要。我们还需要将这些更改应用到 Development 分支,以便它们包含在下一个版本中。此自定义代码包含在所有未来的客户端 installs/updates 中,但仅供基于配置设置的特定客户端访问。

我目前的解决方案是在主分支的基础上创建“自定义功能”分支。自定义工作完成后,我们将为 Master 分支和 Development 分支创建拉取请求。由于 Master 分支始终具有与开发相同的代码,只是处于较早的状态 - 在我看来这应该可以工作。但正如我所说,我不是 GitHub 方面的专家,而且我确信出于多种原因这可能很危险。

我知道将这些类型的定期更改应用于实时发布分支是有风险的。但是,由于我们软件的性质,我们的大多数客户在为他们安装时都希望至少进行少量定制。

编辑

我知道这与这个问题非常相似:

但我建议从发布分支而不是开发分支分支,所以我认为这是一个不同的情况(不过我承认那个问题中的一些概念在我脑海中浮现)。如果这被认为是重复的,我深表歉意。

我建议您熟悉 GitFlow,因为它可能是您问题的解决方案。 https://datasift.github.io/gitflow/IntroducingGitFlow.html

基本上,你是对的,正确的做法是从 master 分支出来,在分支中创建变更,然后合并到 master 和 develop。按照附件 link 中的 "hotfix" 部分进行操作。