我们的服务器设置为具有多个项目,这些项目由多个用户同时处理,位于同一服务器上,每个项目共享一些源代码。设置如下:
我们希望在git的版本控制下使用源代码(共享和项目特定的)(但由于其大小而不是项目数据)。
我们提出的解决方案是为所有源代码(在/ src中)提供一个git存储库。然后,用户将整个存储库签出到相关的项目目录(例如/ projects / project1)以处理项目(即进入/ projects / project1 / src)。这是为了避免更改项目所需的任何共享源代码,从而影响在服务器上的其他项目上工作的其他用户。这个单一的存储库解决方案似乎有意义,因为项目特定的代码引用了共享代码,因此应该一起跟踪。然后,该计划将根据需要将错误修复/改进提交回/ src。在项目结束时,用户可以提交所有源代码的特定版本,因此在以后可以使用适当版本的项目特定和共享源代码检出此版本以复制特定项目的所有数据的创建。
该系统的主要缺点是每个项目目录将包含共享源代码的副本,以及每个其他项目的源代码。但是,由于源代码相对较小,因此就硬盘空间而言,这不是一个很大的开销
在我们承诺上述计划之前,我非常希望能够听到更好的解决方案。
答案 0 :(得分:2)
您想要共享代码和每个项目的单独存储库。每个项目都将共享代码仓库作为子模块。
你的树看起来像是:
有关子模块的详细信息,请参阅此处:http://git-scm.com/book/en/Git-Tools-Submodules