我有一个工作流程,我需要将一些功能交付给开发进行测试,然后再将它们推送到生产中。问题是其中一些功能需要无限期地保留在开发服务器上,并且永远不会推送到生产服务器,所以我永远无法直接将开发分支与 prod 分支同步。这意味着我不能使用只有一个主分支的模型,该分支通过标记发布到 prod。我可能需要为每个功能请求创建一个分支,并始终分支出 prod 分支,以免从 dev 推送任何不应该在 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
这种方法是否足够可靠?
谢谢!
是的,这实际上是 Git 存储库本身遵循的内容:
- 它在每个新的发布周期重置暂存/开发/测试分支,使这些分支成为临时的(即销毁/重新创建( 它将功能分支合并到
- 这些分支(而不是从开发合并到测试再到暂存(
以Gitworkflow为例(不是"git flow",而是用于 Git 存储库本身的工作流(:通过将功能分支直接合并到每个环境分支,您可以避免这些分支之间的任何依赖关系(在您的情况下,master
不依赖于dev
(,并且在这些不同环境中完成的集成过程中,取消其中一些功能变得非常容易: 您只需要不要将该功能分支合并到下一个环境分支中(在您的情况下:master
(。
在rocketraman/gitworkflow
查看更多信息。