Git 子模块和分支之间的中间地带?
我刚刚开始为我的项目未完成的特性创建主题分支,由Git管理。它们都是非常独立的,一个主题分支与另一个主题分支没有直接关系。然而,所有分支都有一些共同点,主分支是系统的核心,主题分支只是扩展了主分支中的功能 如果我理解正确,如果我在主分支中做了一些影响(m)任何主题分支(例如,更改用于在核心和单个功能之间通信的API)的事情,那么更改不会自动传播到主题分支,因此可以相应地修复分支。需要手动合并这些更改,或将其挑选到其他分支中 我知道使用子模块可以实现这一点。然而,子模块导致了主项目和潜在功能项目之间的过度分离,这主要是因为这些功能不能自我维持。他们依靠核心Git 子模块和分支之间的中间地带?,git,branch,git-submodules,Git,Branch,Git Submodules,我刚刚开始为我的项目未完成的特性创建主题分支,由Git管理。它们都是非常独立的,一个主题分支与另一个主题分支没有直接关系。然而,所有分支都有一些共同点,主分支是系统的核心,主题分支只是扩展了主分支中的功能 如果我理解正确,如果我在主分支中做了一些影响(m)任何主题分支(例如,更改用于在核心和单个功能之间通信的API)的事情,那么更改不会自动传播到主题分支,因此可以相应地修复分支。需要手动合并这些更改,或将其挑选到其他分支中 我知道使用子模块可以实现这一点。然而,子模块导致了主项目和潜在功能项目之
所以,我要寻找的是一种方法,可以说某些文件/目录对于某个分支是唯一的,其他所有东西都来自一个主分支。没有更好的类比,用Photoshop术语来说,我希望master是背景层,每个主题分支都是位于其上的一个部分透明的图像层,具有一些独特的内容。假设您有分支master和一系列分支:feature1、feature2、feature3
$ git checkout feature1
$ git branch master-with-feature1
$ git checkout master-with-feature1
$ git merge master
无论何时对主控形状或特征1进行任何更改,您都可以签出到带有特征1的主控形状并合并它们。假设您有分支主控形状和分支束:特征1、特征2、特征3
$ git checkout feature1
$ git branch master-with-feature1
$ git checkout master-with-feature1
$ git merge master
无论何时对master或feature1进行任何更改,您都可以签出到master-with-feature1并合并它们。Git中不支持“组合”或“配置继承”的概念,如问题“”中所述。只有合并允许您“组合”所需的确切文件集
子模块功能可帮助您识别一组连贯的文件,这些文件必须有自己的生命周期,并以自己的速度进行标记。你的特征并非如此
您的方法应该保持“一个”,即开发、标记和合并所有系统。如果某些内容在主分支上发生变化,则需要在功能分支上进行合并。如果这些特性涉及一组与在主分支中修改的文件不同的文件,那么这种合并将是微不足道的。如果没有,您可以使用中间分支来解决冲突并评估合并结果,同时保持功能分支不变。Git中不支持“组合”或“配置继承”的概念,如问题“”中所述。只有合并允许您“组合”所需的确切文件集 子模块功能可帮助您识别一组连贯的文件,这些文件必须有自己的生命周期,并以自己的速度进行标记。你的特征并非如此 您的方法应该保持“一个”,即开发、标记和合并所有系统。如果某些内容在主分支上发生变化,则需要在功能分支上进行合并。
如果这些特性涉及一组与在主分支中修改的文件不同的文件,那么这种合并将是微不足道的。如果没有,您可以使用一个中间分支来解决冲突并评估合并的结果,同时保持功能分支不变。我想我记得看到过这个分支的副本,但我找不到它。我想我记得看到过这个分支的副本,但我找不到它。