如何让Git知道单个分支中的某些文件是相互分支的

时间:2012-03-27 14:16:22

标签: git git-submodules git-merge git-branch

我们有一个具有不同主题的产品,存储在主分支中,如此

themes/theme_one/...
themes/theme_two/...
etc

每个文件夹都有自己的结构,并保留CSS和HTML文件。有时,我们的一位客户希望拥有自定义主题。由于我们有各种各样的主题,通常有一个与客户需求高度相似,只需要进行外观修改。所以我通常做的是创建一个分支new_customer,切换到该分支,复制选择的主题(例如themes / theme_two / - > themes / custom_theme /)并修改它,应用客户需要的更改。有时候这些变化是最小的,有时它们会变大,但结果主题仍然大量继承自其父级。

组织它的最有效方法是什么?假设我们已经注意到themes / theme_two /中的一些随机错误并应用了修复程序。主题是某种方式告诉Git,themes / custom_theme /实际上就像来自themes / theme_two /的分支,所有的更改也应该在那里重新应用(即使它们仍然存在于各自分支的上下文中 - master和new_customer)。

前段时间我正在读一本关于Git的书,我依稀记得一些关于子模块的东西。这是解决这个问题的经典方法吗?如果是,它将如何运作?我会做这样的事情 - 为主题设置一个单独的repo(可能是每个主题的分支),然后在主产品master中创建主题/.../文件夹并将它们链接到各自的主题分支。然后,当我需要创建一个自定义主题时,我将从主要产品的主人创建一个some_customer分支,从另一个repo的theme_two分支创建一个分支,并将其作为子模块加载到new_customer分支的themes / custom_theme /中? / p>

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是对每个主题进行分支,并始终从theme_two合并到custom_theme中。我不知道合并git目录层次结构的一部分 - 并且无法记录这样的部分合并。