git子模块:哪个存储库应用作'子模块'?

时间:2015-05-19 14:54:25

标签: git git-submodules

我有一个私有git存储库(repos' private'),其中包含一堆文件 我经常编辑。其中一些文件发布在网站上。这很乏味 每次我做一个小改动时更新这些文件。因此我想到了 以下列方式使用git子模块:我设置了第二个(现在是公共的)git 存储库(' public'),并放入网站上显示的所有文件。该 然后,网站会在“公共”中提供这些文件的链接。一旦我编辑了其中一个 私人'中的文件这些公共'公共'公共'公共'将会 可见(在简单的git命令之后),因此文件更改将是可见的 在网站上。我的问题是:

1)这是处理问题的好方法吗?

2)我读到git submodule update --remote --merge,但我还不是100% 确定是否将子模块更新为主项目中的更改或 恰恰相反。我经常看到上游'用于解释 但无法找到确切的定义。

3)如果子模块主要用于更新主项目的意义上 对于子模块的更改,我是否必须创建私有' 存储库作为一个子模块和“公共场所”。一个作为主要项目? (因为我 我想跟踪私人'的变化。来自' public')

[我以为我仍然将这些问题保存在一篇文章中,因为它们非常相关。]

1 个答案:

答案 0 :(得分:1)

使用子模块会增加相当多的复杂性。

似乎拥有一个单独的存储库会更容易,目录是私有的'和一个目录' public'。目录' public'可以包含#private私密文件的符号链接。

这将允许您拥有两种类型的文件,但避免了子模块的复杂性。

另一个选择是让你的构建系统处理这个:只有一个包含所有文件的目录,并有一个Makefile目标,它将公共文件复制到另一个目录。