0

我有一个 git 存储库,其master分支是主要的。

我有以下方式的层次结构:

      master
        |
       core
  /     |     \
 V100  V200  V300

V100, V200,V300是依赖于核心的不同模块。

多人将在这些模块上工作,并core从任何V*分支修改模块。

问题是,如果不复制文件、更改到核心分支、修改它,然后从分支中提取更改,我真的不知道如何处理这种情况V*

有没有更好的方法来处理这些变化?还是不应该从V*分支中修改核心模块?

注意:core模块不能单独测试,它只包含其他分支中使用的抽象类、接口和库。

4

1 回答 1

2

听起来您将分支与维护不同模块的方式混淆了。分支应该是相同代码的版本。

例如,您可能有一个 master、development 和几个功能分支。您的主分支是您部署的代码。您的开发分支可能是您准备部署的代码。您的功能分支是您未完成的新功能。

当你完成一个特性时,你将它的分支合并到开发分支中。准备好发布后,将开发分支合并回 master 并发布代码。依此类推,它就像一个循环。

一般来说,我发现最好将单独的代码组保存在单独的存储库中。因此,在我看来,您需要为每个 V* 模块创建一个存储库。您还将拥有 Core 模块的存储库。在 git 中,有很多这样的 repos 是很常见的。

或者,您可以将 Core 模块作为子模块包含到其他 repos 中。您所做的是在主模块中创建一个目录,例如 V100/core,然后将其设置为子模块。然后,这将链接到 Core repo 的特定提交。通过这种方式,您可以确定您的项目链接到适用于它们的子模块版本。

子模块确实有一些复杂性和陷阱,因此它们的名字不好。我发现如果使用得当,它们实际上工作得很好。要了解有关它们的更多信息,请查看http://git-scm.com/book/en/Git-Tools-Submodules

于 2013-07-25T07:21:40.303 回答