将一个项目拆分为多个git存储库

bea*_*thk 2 git multiple-repositories

我是 git 新手,我的任务是将现有项目转移到 git 中。我遇到的问题是这实际上是两个项目。我们将该项目称为“One”。一个实际上既是一个报告站点,也是一组由各个项目使用的代码模板(这使得报告站点能够在项目之间运行报告标准)。我们希望在我们的开发和报告服务器上运行报告站点,并在我们的开发和生产服务器上拥有代码模板。因此,有时需要两个存储库,有时只需要 1 个存储库。其中一个存储库的代码结构如下所示:

/one (generic main dir, no files, only sub-dirs)
  /onesource  (PHP source code for the reporting site)
  /onerept    (reports run by the reporting site)
  /onelib     (templates)
  /oneinc     (include files used by templates)
  /oneadmn    (files used by both)
Run Code Online (Sandbox Code Playgroud)

因此,报告站点存储库将希望包含 onesource 和 oneerept 子目录,而模板存储库将希望包含 onelib 和 oneinc 目录。如果需要,我可以将 oneadmn 目录设置为服务器之间的共享安装。当前所有内容都设置为共享安装,但由于多种原因,这很糟糕。

我如何在 git 中进行设置?

sle*_*ske 5

标准规则是:所有开发、版本控制和发布的内容都放在一个存储库中。因此,项目中具有独立版本号的部分会进入它们自己的存储库。

原因是 git 中的分支和标签始终是存储库范围内的(与 Subversion 不同)。

根据这一规则,我想说所有内容都应该放入一个大仓库中。


至于哪台服务器上需要什么数据:您可以使用一些部署过程来仅复制所需的数据,或者您只需检查所有内容。从你的问题来看,拥有一切可用的东西似乎并没有什么坏处。

无论如何,如果您需要在某个服务器上使用特定的目录结构,那就是一个部署问题。存储库应该用于开发,而不是用于部署。部署是后来的事,并且有自己的一套工具。