git repo是否应包含部署所需的所有二进制和静态文件?

Jon*_*n M 2 git deployment

背景:

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

题:

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

什么是适合我们的设置的"一个动作"部署stratergy:

  • 开发笔记本电脑1(办公室/家庭)
  • 开发笔记本电脑2(办公室/家庭)
  • 开发服务器(办公室)
  • 生产服务器(场外)

谢谢

Mar*_*Gil 6

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

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

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

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