5

我有一个由库和各种应用程序组成的项目:

foo/
foolib/
bar/
baz/
qux/foo/

所有应用程序都链接到一个静态库傻瓜。

我希望git commit on foo记录傻瓜所在位置的 SHA1 ID,还希望git status on foo报告是否有未提交的更改

但是,我不想将傻瓜移动到拥有它的副本作为每个应用程序的子目录。除了臃肿之外,这将失去在多个应用程序中尝试对傻瓜进行一些更改而不提交更改的能力。

我尝试制作一个指向 ../foolib 的 .gitmodules 文件,但它似乎被git status完全忽略了。我还尝试在 foo 中制作一个软链接但 git似乎软链接视为文件而不是跟随链接。

我想要的是可能的,还是您有任何替代的工作流程解决方案?

在我的公共存储库中,结构是相同的,并且每个应用程序(和傻瓜)都是从公众单独克隆的。

4

1 回答 1

1

这个想法是创建另一个repo fooProject,它将声明为 submodules

  • foo
  • foolib

(如果您调用您的父项目appProjects而不是fooProject,您可以将所有子目录声明为子模块:foo, foolib, bar, baz, ...)

如果任何子目录 (foofoolib) 更改并进行新的提交,您将返回父 repo 并提交,以记录不同子模块的 SHA1。

于 2012-11-07T07:42:06.423 回答