【发布时间】:2014-12-09 18:54:35
【问题描述】:
我想就我正在从事的项目的最佳 Git 分支策略获得一些建议。
有一个开源程序(我将其称为“PRIMARY”),我想对其进行分叉并添加几个专门的功能(我将此修改后的版本称为“SPECIAL”)。这些功能(我将它们称为“FEATURE1”和“FEATURE2”可能通常不足以保证将它们添加到 PRIMARY 的主线开发中,但我想让 FEATURE1 或 FEATURE2 的更改可供任何想要的人使用他们。PRIMARY 正在积极开发中,我希望 SPECIAL 及时了解这些变化以及我的功能继续添加。
我的目标是创建一个公共存储库,以便于
- 使用新版本 PRIMARY 的更改更新 SPECIAL;
- 创建新版本的 SPECIAL 并添加 FEATURE1 和 FEATURE2;
- 隔离必要的更改以将 FEATURE1 或 FEATURE2 添加到任何版本的 PRIMARY。
我一直在尝试各种策略,但我觉得我还没有找到最佳解决方案。我最初的想法是使用 master 分支进行 SPECIAL,一个供应商分支跟踪 PRIMARY 的更改,从供应商分支分支 FEATURE1/FEATURE2,然后将功能分支合并到主分支以生成最终的 SPECIAL 程序。但是如何处理 PRIMARY 的更新呢?我的所有尝试都需要在 PRIMARY 更新时手动对多个分支进行相同的更改(并解决冲突)。这对我来说似乎是错误的,而不是 DRY。
建议?
【问题讨论】:
标签: git version-control branching-and-merging