【问题标题】:Should a git repo contain all binary & static files needed to deploy?git repo 是否应该包含部署所需的所有二进制和静态文件?
【发布时间】:2011-12-01 11:32:29
【问题描述】:

背景:

我是我们团队中的两名开发人员之一。我们在内部使用 git 已经 6 个月了,取得了巨大的成功。但是,我们仍然通过 FTP “手动部署”到我们的生产服务器……在我们对 git 工作流程感到满意之前,我们不想冒险进行任何自动部署。我们现在有一个开发服务器设置,并且正在研究某种“一键式”部署......我听说有些人从代码仓库中对开发服务器执行“git pull”。我还听说有些人从暂存服务器“rsync”文件。

问题:

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

什么是适合我们设置的“一次性”部署策略:

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

谢谢

【问题讨论】:

  • 请注意,PDF 文件听起来更像是内容,而不是应用程序的一部分。我不喜欢将内容存储在我们的存储库中。内容存储在共享存储中,并使用专用工具进行备份。

标签: git deployment


【解决方案1】:

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

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

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

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

【讨论】:

  • +1 用于在部署之前测试新修订版的构建服务器
猜你喜欢
  • 2016-08-02
  • 2015-04-24
  • 1970-01-01
  • 2013-09-16
  • 2020-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多