我有两个代码库,名为a
和b
。项目a
提供项目b
所依赖的通用基础结构。但是,项目b
的所有代码都位于项目a
的目录结构下面。这是一个例子:
a File0.cs
a Assets/Core/File1.cs
b Assets/Extension/File2.cs
因此,项目a
提供File0.cs
和File1.cs
并拥有Assets
文件夹。项目b
仅提供File2.cs
git是否支持此目录结构?如果是这样,怎么样?
由于
答案 0 :(得分:3)
是的,确实如此。它在git术语中被称为“子模块”。您可以使用git submodule --help
获取帮助。
尽管如此,依赖于子模块并不是一种非常好的风格,如果可能的话,使用各种包/依赖管理器,如pip,gem,npm,bower等。
答案 1 :(得分:0)
你在寻找什么被称为“子模块”:
基本上你可以告诉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上,但它没有宣传这一事实,使它们稍微难以处理。