所以我有这样的文件夹
c:\projects\generic\
c:\projects\project1\
c:\projects\project2\
项目下的每个文件夹都是各自独立的本地git存储库。项目可以使用通用文件夹中的一个或多个头文件。如果项目使用头文件,则需要在项目文件夹中,而不是项目文件夹下的子文件夹。另外,我可能不想要最新和最好的,我想通过标签来拉它,所以我可以确定我有一个特定版本的文件用于该项目。
我该怎么做?这是可以用子模块完成的吗?在这种情况下,有更好的方法来组织文件夹吗?
答案 0 :(得分:0)
我想要[...]该项目正在使用的特定版本文件。
Yup:子模块就是这样的。子模块是一个嵌套的存储库,使用项目的提交记录(仅)确切地在子模块的路径中检查了哪些(其他)提交的SHA,git submodule
只是检查了获取正确的子模块提交的琐事。你想要的。
如果项目使用[来自另一个存储库]的头文件,它需要在项目文件夹中,而不是项目文件夹下的子文件夹[...我在Windows上]。
幸运的是这些是标题,否则这个组合会出现问题。实际上,编译器可以使用#include "relative/path/to/submodule/header.h"
追踪相对路径名:
repo
|--generic.h: "#include generic1/generic.h"
|--generic1
|--generic.h: the real thing