如果一个git repo包含所有二进制文件和部署所需的静态文件?

时间:2011-10-05 13:03:20

标签: git deployment

背景:

我是团队中的两位开发人员之一。我们已经在内部使用git 6个月,取得了巨大的成功。但是,我们仍然通过FTP“手动部署”到我们的生产服务器......我们不想冒任何自动部署的风险,直到我们对git工作流程感到满意为止。我们现在有一个开发服务器设置,并正在寻找某种“一键”部署....我听说有些人在代码仓库的开发服务器上做了一个“git pull”。我还听说有些人“转发”来自登台服务器的文件。

问题:

我们的git repo是否应包含所有永不更改的大文件(例如我们的Java照片上传器小程序使用的.cab文件)。显然我们的缓存HTML文件不属于repo ...但是我们的PDF产品指南等等呢?这些都应该由git跟踪吗? (我现在将它们放在gitignore上以节省github和我们机器上的空间。)

对于我们的设置,什么是合适的“一个动作”部署策略:

  • Dev Laptop 1(办公室/家庭)
  • Dev Laptop 2(办公室/家庭)
  • 开发服务器(办公室)
  • 生产服务器(场外)

由于

1 个答案:

答案 0 :(得分:6)

常规策略假设您的git存储库包含构建完整目标产品所需的所有必需文件(源代码,其他二进制库,驱动程序,构建脚本等)。

是.zip包,整个应用程序的安装程序文件 - git存储库应该是自给自足的。每个开发人员都应该能够克隆存储库并能够创建完整的输出。 当然,前提是要有完整的开发环境。

因此,您可以在存储库中包含.cab文件或从源代码构建它。

但是,您可以使用构建服务器(例如Hudson)来提取,构建并将完整目标同步到生产中,而不是简单地将存储库克隆并提取到生产服务器。这样甚至PDF也可以从例如构建。 LaTeX文件。