具有相同基目录的多个git存储库

时间:2014-01-17 19:41:18

标签: git

我有两个代码库,名为ab。项目a提供项目b所依赖的通用基础结构。但是,项目b的所有代码都位于项目a的目录结构下面。这是一个例子:

a File0.cs
a Assets/Core/File1.cs
b Assets/Extension/File2.cs

因此,项目a提供File0.csFile1.cs并拥有Assets文件夹。项目b仅提供File2.cs

git是否支持此目录结构?如果是这样,怎么样?

由于

2 个答案:

答案 0 :(得分:3)

是的,确实如此。它在git术语中被称为“子模块”。您可以使用git submodule --help获取帮助。

尽管如此,依赖于子模块并不是一种非常好的风格,如果可能的话,使用各种包/依赖管理器,如pip,gem,npm,bower等。

答案 1 :(得分:0)

你在寻找什么被称为“子模块”:

6.6 Git Tools - Submodules

基本上你可以告诉git你的存储库中的一个目录实际上是一个独立的存储库,在其他地方被跟踪。这适用于目录级别,而不是文件级别。

从那里,将单个文件分配到特定存储库的目录只需要创建符号链接。

myapp/
myapp/submodule/                    <-- submodule repository
myapp/submodule/foo.c               <-- shared file
myapp/foo.c -> submodule/foo.c      <-- shared file reference in parent dir

Windows支持符号链接在NTFS上,但它没有宣传这一事实,使它们稍微难以处理。