【发布时间】:2016-05-05 09:29:04
【问题描述】:
如何在没有项目 Y 的更改的情况下发布项目 X(合并到 Master)?
展望未来,解决方案 A、B 和 C 是否都应该是未来的独立存储库(尽管它们在业务层面相关)?
场景
我们有一个单一的存储库,其中包含:
- 解决方案 A
- 解决方案 B
- 解决方案 C(共享组件)
解决方案 A 和 B 都是我们整个系统的“插件”,通过通用组件将它们连接在一起。解决方案 A 和 B 依赖于解决方案 C 中的共享组件。
项目 X 需要对解决方案 A 和 C 进行更改。这些更改在功能分支中完成,合并回 dev 并持续部署到我们的暂存环境中。
项目 Y 只需要对解决方案 B 进行更改。再次在功能分支中,合并回 dev 并持续部署到 Staging。
Git 历史
此时,我们的 Git 历史记录如下所示(从最早到最新):
--> ProjectX --> ProjectY
业务需求
企业不再希望项目 X 投入生产,因为项目 Y 现在是“优先级 1”。 没有可以发布来自 Project X 的更改。
分支策略
发布策略
我们部署完整的产品包,而不是差异化。
在合并到 Dev 时,Team Foundation Server 会部署到 Staging。
在合并到 Master 时,Team Foundation Server 为每个构建定义提供一个格式化的部署包。
【问题讨论】:
标签: git git-branch branching-and-merging branching-strategy