我刚刚开始为我的项目未完成的功能创建主题分支,由 Git 管理。它们都非常独立,一个主题分支不直接与另一个主题分支相关。然而,所有分支都有一些共同点,主分支是系统的核心,主题分支只是扩展主分支中的功能。

如果我理解正确的话,如果我在主分支中做了一些影响(m)任何主题分支的事情(例如,更改用于在核心和各个功能之间进行通信的 API),则该更改不会传播到主题分支自动,以便相应地固定分支。这些更改需要手动合并或挑选到其他分支中。

我知道使用子模块可以实现这一点。然而,子模块导致主项目和未来的功能项目之间存在过多的分离,主要是因为这些功能不能自我维持。他们依靠的是核心。

所以,我正在寻找的是某种方法来说明某些文件/目录对于某个分支是唯一的,其他所有内容都来自主分支。缺乏更好的类比,用 Photoshop 术语来说,我想要 掌握 作为背景层,每个主题分支将是其顶部的部分透明图像层,具有一些独特的内容。

有帮助吗?

解决方案

Git 不支持“组合”或“配置继承”的概念,如问题“中所述”灵活分支与静态分支”。只有合并才允许您“组合”您想要的确切文件集。

子模块功能可帮助您识别一组连贯的文件,这些文件必须有自己的生命周期并按照自己的节奏进行标记。你的功能不是这样的。

你的方法应该仍然是“基于系统的“第一,您可以在其中开发、标记和合并所有系统。如果主分支上发生了某些变化,则需要将其合并到功能分支上。
如果这些功能涉及主分支中修改的一组不同的文件,则合并将是微不足道的。如果没有,您可以关注 马图萨的建议, ,使用中间分支来解决冲突并评估此类合并的结果,同时保持功能分支不变。

其他提示

假设你有分支主,一簇树枝:特征1,特征2,特征...

$ git checkout feature1
$ git branch master-with-feature1
$ git checkout master-with-feature1
$ git merge master

任何时候你做任何修改的的或优点1 的你可以检出到的主用 - 优点1 的和合并。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top