将推送到bitbucket git存储库之后,为什么供应商文件夹的大小从100MB下降到15MB?

时间:2013-06-27 07:46:20

标签: git laravel laravel-4 bitbucket composer-php

我们通常会在vendor中保留.gitignore文件夹,但必须禁用它,因为我们的生产服务器上没有ssh访问权限,我们需要不时地运行composer update

因此,我们想出了删除供应商文件夹上的.gitignore ,在我们的本地计算机上执行composer update,将所有内容推送到存储库并通过{{部署它1}}到我们的生产服务器。 (我们使用FTP进行存储库 - >生产转移。)

但是,现在我的本地项目文件夹大小为100MB,DeployHQ存储库大小仅为20MB。我的本地供应商文件夹大约为90MB,在存储库中,它只有几兆字节。

检查时,我在Bitbucket存储库中遇到了这些值:

Bitbucket

在我的本地供应商文件夹中,我看到了Doctrine的类和PHP文件。

所以我想问几件事情;

  1. 为什么会发生这种情况,这些注释意味着什么? (我们可以将它们与符号链接相关联吗?例如Git知道它是Doctrine,所以它符号链接到Doctrine的存储库,并将从vendor / doctrine / annotations cache → 89493d2c6e [89493d2c6e] collections → 3db3ab843f [3db3ab843f] common → c4255b9fbd [c4255b9fbd] dbal → 3253f7a1c1 [3253f7a1c1] inflector → 8b4b3ccec7 [8b4b3ccec7] lexer → bc0e1f0cc2 [bc0e1f0cc2] 上的Doctrine存储库下载这些文件?)

  2. 我们可以使用git存储库中的5MB供应商文件夹安全地替换生产中的90MB供应商文件夹吗? (通过git pull on production,或通过FTP将存储库文件夹复制到生产中。)

  3. 您如何自己处理供应商文件夹?保持它git pull并在生产中通过SSH执行作曲家更新命令,或将它们推送到您的git存储库并将您的存储库推送到生产服务器?还有哪一个更好?

  4. 谢谢。

    聚苯乙烯。生产服务器上没有安装git或composer。

    聚苯乙烯。我们的上传速度非常低,上传90MB将需要一个小时。我还要注意这一点,因为我们寻找最快的替代方案。

1 个答案:

答案 0 :(得分:1)

  1. 基本上你是对的,bitbucket知道它们是你的供应商文件夹中的git存储库,所以只需将它们链接到相应的存储库,这样它就不会重复。 要真正了解注释,请查看Git Submodules

  2. 不,5MB版本太小了,因为它不包含实际代码,如果你试图使用它会破坏;)
    尝试运行git submodule init然后git submodule update看看它是否膨胀!

  3. 您不应该在生产服务器上执行composer update,而是在登台服务器上执行此操作(如果您的测试没有ssh,甚至可以预先在本地环境中执行此操作[这真的不应该因为它意味着嘲笑你的prod env])如果这样工作正常,那么你将代码推送到生产服务器。在生产服务器上执行composer update充其量是冒险的。