git 中项目的 1 个或 2 个存储库

1 or 2 repositories for project in git

我来自 Perforce 环境,但我了解 git 的基础知识和一些内部结构,但在工作流程方面我遇到了一个问题。

我正在将 perforce depot 转换为 git。在我的 Perforce depo 中,我有 2 个主分支(coremaster),其中 core 定期集成到 master 中。

//depot/core/...
   | +-/feature/core_feature1/...
   | +-/feature/core_feature2/...
   |
   v
//depot/master/...
     +-/feature/master_feature1/...
     +-/feature/master_feature2/...

我能否将这个概念也保留在 git 中,还是应该 core 成为一个单独的存储库?因为 core==>master 但从来没有 master==>core。所以我不确定哪个分支应该成为 master 分支。我认为它应该是 master 但我如何设置一个 "merge-integrate-dependency" 在 git 中两个项目包含不同数量的 "states" 或文件。

绝对是一个仓库,拥有两个只会让你的生活变得艰难。在一个存储库中几乎所有操作都更容易,并且拥有两个存储库不会获得任何重要的东西。

我不太了解您的流程,无法权衡 "which should be master" 但我要指出的是,master 只不过是一个名字。这是一个 非常 广泛持有的公约,它是 "default default branch" 的名称,可以这么说,但 master 实际上只是另一个分支,在任何方面都没有特权方法。只要您和您的合作者满意,您可以自由设置任何您喜欢的流程,使用您喜欢的 master,甚至根本没有名为 master 的分支。

你应该使用子树或子模块。

submodule

  • submodule 通常用于基于组件的(微服务),内容存储在单独的 repo 中,但作为组件包含在主 repo 中。

subtree

  • subtree 通常是一个存储库,您的所有代码都存储在一个存储库中,通常在不同的分支中,这些分支通常再次用于开发单独的代码行。

submodule


subtree