2016-12-04 31 views
1

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

的CMS我用我发布的所有站点静态HTML/CSS/JS文件到这样的目录结构...

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

将建议这个是什么,为每一个客户回购?我不熟悉子模块如何工作,也许这是一个更好的解决方案?

回答

2

Git Submodule Doc

子模块允许外国库被嵌入源代码树的专用子目录中,总是指着一个特定的提交。

因此,通过某种方式构建子模块以在资源库之间共享依赖关系/库/组件等。

考虑你有2个项目:

  • AC
  • B依赖对C

依赖然后C将是一个子模块的绝佳选择。

就您而言,您的特定客户项目似乎不会在网站之间共享,因此它们不是子模块的理想选择。

在另一方面,如果CMS有一个更好的结构,这将有一个这样的树:

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

你可以有(每个客户1)3个不同的存储库和AppDependency将是一个SUBM一个不错的选择odule。 我强烈建议,试图走向这样的结构,因为这可能会证明长期对您的项目非常有利。

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

+1

谢谢你对子模块的这么好的解释。我非常确定,从我能读的所有内容来看,我肯定会为每位客户创建一个回购协议,只是不确定更简单的方法。结束的一天只是另一个步骤。一旦我得到为每个客户设置的远程起源,我想这并不是什么大问题。 –