Git & 子目录/子模块?

Git & Subdirectories / Submodules?

我对 git 比较陌生。但是,我希望能够通过 bitbucket/netlify 开始部署我的网站,所以我对那里的 git 专家有疑问!

我使用的 CMS 将我所有的网站作为静态 html/css/js 文件发布到这样的目录结构中...

app
→sites
→→customer 1
→→customer 2
→→customer 3

为此推荐什么,每个客户的回购?我不熟悉子模块的工作原理,也许这是更好的解决方案?

来自Git Submodule Doc

Submodules allow foreign repositories to be embedded within a dedicated subdirectory of the source tree, always pointed at a particular commit.

所以在某种程度上,构建子模块是为了在存储库之间共享 dependencies/libraries/components 等。

假设您有 2 个项目:

  • A 依赖于 C
  • B 依赖于 C

那么 C 将是一个很好的子模块选择。

在你的情况下,你的特定客户项目似乎不会在站点之间共享,因此它们不是子模块的好选择。

另一方面,如果 CMS 有更好的结构,它就会有这样一棵树:

→→客户1
→→→AppDependency
→→顾客2
→→→AppDependency
→→顾客3
→→→AppDependency

您可以有 3 个不同的存储库(每个客户 1 个),AppDependency 是子模块的不错选择。 我强烈建议,尝试采用这样的结构,因为从长远来看,这可能对您的项目非常有益。

在您当前的结构中,我会说(不幸的是),没有办法在站点之间分离关注点。 (如果你更新共享代码,所有人都会受到影响),所以在这种情况下,我建议只使用一个 repo,并且在更新公共代码时要格外小心。