使用git for deploy比发送.tar.gz有明显的优势吗?

时间:2014-12-28 00:18:59

标签: php git deployment composer-php

这个问题试图找出两种部署方法之间的事实差异,而不是主观的。查看最后的列表以获取具体概念。

我目前正在寻找从其构建的任何地方部署我的应用程序的选项。我已经阅读了很多,并且熟悉git有时如何用于部署。我还看到了如何简单地创建所需文件的tar.gz然后将其发送到服务器。

我越是想到这一点,我越觉得简单地编写档案的创建和发送就更简单了,并且更加静态"而不是依靠git进行部署。

到目前为止,让我赞成简单归档的主要因素是:

  • 目的地不必安装git或任何其他工具
  • 我不必在目标
  • 上设置任何特殊密钥以进行相关性检查
  • 使用git时,部署的存储库将始终大于实际部署的代码
  • 我有一个较少的git存储库,以保持一致
  • 在我的特定情况下,我还有在git存储库(composer,bower,grunt)之外构建或检索的依赖项
  • 我可以选择要部署的文件子集,而不是整个分支/标记
  • 准备好的软件包是我网站的完全正常分发版,几乎就像二进制文件

进一步阅读:

2 个答案:

答案 0 :(得分:2)

我有两种不同的方式来做这件事。一种是将git repo实际克隆到服务器上,并从服务器上的命令行拉取。第二种是使用像http://dploy.io/这样的部署工具,其中ftp是从repo到服务器的文件。

在这两个实例中,我从存储库中通过(composer,bower,grunt)安装任何东西,并在需要时手动从服务器上的命令行执行此操作。我对这两种方法的工作流程感到满意,并使用更适合部署的服务器以及需要进行未来部署的团队。

答案 1 :(得分:2)

两种方法之间的主要区别(除了在生产服务器上使用Git之外)是必须通过网络传输的文件数量:您必须传输的文件越少,所有进程的错误就越少。

这就是为什么我更喜欢使用git archive来生成所需的tar文件(包含指定树的树结构的指定格式的存档)。

这样,我只需要传输一个文件,作为常规存档,而我不需要Git在另一边。