特定的git配置

时间:2018-06-22 20:53:46

标签: git workflow git-branch branching-and-merging branching-strategy

我有一个工作流程,在该工作流程中,需要将一些功能交付给开发人员进行测试,然后才能将其推送到产品中。问题在于,其中某些功能需要无限期地保留在开发服务器上,并且永远不要推送到生产服务器,因此我无法直接将开发分支与生产分支直接同步。这意味着我无法使用只有一个主分支通过标签发布到产品的模型。我可能需要为每个功能请求创建一个分支,并始终从prod分支中分支出来,以免向开发人员推送不应包含在prod上的任何内容。我想知道使用git管理类似内容的最佳方法是什么。

当前想法如下:

Production branch (master)
Development branch (development)

feature1:
- branch created from master
- completed and merged into dev
- tested
- stays on dev indefinitely

feature2
- branch created from master
- completed and merged into dev
- tested
- merged into prod

这种方法足够扎实吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,这实际上是Git回购本身遵循的:

  • 它会在每个新的发行周期重置staging / dev / testing分支,使这些分支具有短暂性(即已销毁/重新创建)
  • 它将功能分支合并到那些分支中(而不是从开发到测试再到阶段合并)

请参见Gitworkflow as an example(不是“ git flow”,而是用于Git存储库本身的工作流):通过将功能分支直接合并到每个环境分支,可以避免这些分支之间的任何依赖关系(在您的情况下) ,master不依赖于dev),并且在这些不同环境中进行的集成过程中,取消其中的某些功能变得非常容易:您只需合并该功能分支进入下一个环境分支(在您的情况下为master)。

rocketraman/gitworkflow上了解更多。