1

所以我有这样的文件夹

c:\projects\generic\
c:\projects\project1\
c:\projects\project2\

项目下的每个文件夹都是它们自己独立的本地 git 存储库。一个项目可以使用通用文件夹中的一个或多个头文件。如果项目使用头文件,它需要在项目文件夹中,而不是项目文件夹下的子文件夹。另外,我可能不想要最新和最好的,我想按标签提取它,这样我就可以确定我有一个特定版本的文件正在用于该项目。

我该怎么做?这是可以用子模块完成的吗?在这种情况下,有没有更好的方法来组织文件夹?

4

1 回答 1

1

我想要 [...] 该项目使用的文件的特定版本。

是的:子模块正是为此。子模块是一个嵌套的存储库,使用项目的提交记录(仅)他们需要在子模块的路径中签出的(其他)提交 SHA,git submodule只是在需要时检查正确的子模块提交的琐事。

如果项目使用 [来自另一个存储库] 的头文件,则它需要位于项目文件夹中,而不是项目文件夹下的子文件夹 [...我在 windows 上]。

幸运的是这些是标题,否则这种组合会有问题。事实上,编译器可以使用 : 来追踪相对路径名#include "relative/path/to/submodule/header.h"

repo
|--generic.h:  "#include generic1/generic.h"
|--generic1
   |--generic.h:  the real thing
于 2013-10-19T08:18:30.980 回答