1

我们的服务器设置有多个项目,由多个用户同时工作,位于同一服务器上,每个项目共享一些源代码。设置如下:

  • /src/shared/多个项目共享的代码
  • /src/project_code/project1特定于 project1 的代码
  • /src/project_code/project2特定于 project2 的代码
  • 等等
  • /projects/project1 project1的输入和输出
  • /projects/project2 project2的输入和输出
  • 等等

我们希望使用 git 将源代码(共享的和特定于项目的)置于版本控制之下(但由于其大小而不是项目数据)。

我们提出的解决方案是为所有源代码(在 /src 中)建立一个单一的 git 存储库。然后用户将整个存储库检出到相关的项目目录(例如/projects/project1)以处理项目(即进入/projects/project1/src)。这是为了避免更改项目所需的任何共享源代码,从而影响在服务器上处理其他项目的其他用户。这个单一的存储库解决方案似乎很有意义,因为项目特定的代码是指共享代码,因此应该一起跟踪。然后,该计划将根据需要将错误修复/改进提交回 /src。在项目结束时,用户可以提交所有源代码的特定版本,所以在以后,

该系统的主要缺点是每个项目目录将包含共享源代码的副本,以及每个其他项目的源代码。但是由于源代码比较小,这对于硬盘空间来说并不是很大的开销

在我们承诺上述计划之前,我很想听到这个问题的任何更好的解决方案。

4

1 回答 1

2

您需要共享代码和每个项目的单独存储库。每个项目都将共享代码仓库作为子模块。

你的树看起来像:

  • /project1/src - 项目 1 的“本地”源
  • /project1/lib/shared - 共享仓库的子模块
  • /project2/src - 项目 2 的“本地”源
  • /project2/lib/shared - 共享仓库的子模块

有关子模块的更多信息,请参见此处:http: //git-scm.com/book/en/Git-Tools-Submodules

于 2013-07-11T19:32:50.503 回答