如何部署repo的不同子集

时间:2015-03-28 20:36:47

标签: git deployment

我有一个包含许多插件的项目,现在我将它们全部保存在一个git存储库中,因为它们分别包含一个文件:

plugins
+-- A
+-- B
+-- C
+-- D
+-- E

我想将此软件部署到不同的生产系统,所有这些都应该得到不同的插件组合。我们说A, B, DC, EB, C, D。如果我在上游更改插件,我想在所有生产系统上尽可能简单地更新它。对于&#34,是否有类似.gitignore文件的内容;请勿检查此文件!"?或者如何在不为每个文件创建自己的git存储库的情况下执行此操作?

1 个答案:

答案 0 :(得分:1)

在能够为正确环境部署正确脚本的脚本中隔离部署机制似乎更容易。

如果你继续在生产中使用Git(这并不总是理想的话),那么同样的脚本可以在结账时自动激活每个插件,并确定(再次依赖于它以某种方式检测到的部署环境)在哪里复制该文件。

这称为 content filter driver ,但它无法阻止这些文件出现在<yourGitRepo/plugins>中:您的部署环境应该会在其他地方找到您的插件(除了git repo本身之外),为了给你的脚本提供机会(在git repo checkout上自动激活),只复制相关的插件。