为什么选择供应商文件夹';s大小在推送到bitbucket git存储库后从100MB下降到15MB?
我们通常将为什么选择供应商文件夹';s大小在推送到bitbucket git存储库后从100MB下降到15MB?,git,laravel,laravel-4,bitbucket,composer-php,Git,Laravel,Laravel 4,Bitbucket,Composer Php,我们通常将vendor文件夹保存在.gitignore中,但必须禁用它,因为我们在生产服务器上没有ssh访问权限,需要不时运行composer update 因此,我们提出了一个想法,即删除供应商文件夹中的.gitignore,在本地计算机上执行composer update,将所有内容推送到存储库,并通过FTP将其部署到生产服务器。(我们使用DeployHQ进行存储库->生产转移。) 但是,现在我的本地项目文件夹大小是100MB,而Bitbucket存储库大小只有20MB。我的本地供应商文件夹
vendor
文件夹保存在.gitignore
中,但必须禁用它,因为我们在生产服务器上没有ssh访问权限,需要不时运行composer update
因此,我们提出了一个想法,即删除供应商文件夹中的.gitignore
,在本地计算机上执行composer update
,将所有内容推送到存储库,并通过FTP
将其部署到生产服务器。(我们使用DeployHQ
进行存储库->生产转移。)
但是,现在我的本地项目文件夹大小是100MB,而Bitbucket
存储库大小只有20MB。我的本地供应商文件夹大约是90MB,在存储库中,只有几兆字节
检查时,我在Bitbucket
存储库中遇到了这些值:
vendor / doctrine /
annotations
cache → 89493d2c6e [89493d2c6e]
collections → 3db3ab843f [3db3ab843f]
common → c4255b9fbd [c4255b9fbd]
dbal → 3253f7a1c1 [3253f7a1c1]
inflector → 8b4b3ccec7 [8b4b3ccec7]
lexer → bc0e1f0cc2 [bc0e1f0cc2]
在我的本地供应商文件夹中,我看到了Doctrine的类和PHP文件
所以我想问几件事
Git pull
?)上从条令的存储库下载这些文件。).gitignore
上,并在生产环境中通过SSH执行composer update命令,或者将它们推送到git存储库并将存储库推送到生产服务器?还有,哪一个更好尝试运行
git submodule init
然后git submodule update
查看它是否膨胀composer update
,而应该在登台服务器上执行该操作(如果您的测试也没有ssh,甚至可以在您的本地环境上执行该操作(实际上不应该这样做,因为这是为了模拟您的产品环境)),如果可以,则将代码推送到生产服务器上。在生产服务器上执行composer更新
,顶多也有风险我们现在基本上就是这么做的。(除了登台服务器,因为我们没有登台服务器,现在只是从开发到生产。)然而,90MB的供应商文件夹在存储库上变成了5MB,我想知道为什么。那么正确的部署方式应该是什么?我的意思是,我知道我们需要将我们的供应商文件夹推到git,但是将它们推到生产环境中呢?我们需要在生产中安装git并发布git pull?因为您没有登台/测试服务器,我想您只是直接从您的开发机器中推送代码?如果是这样,您不需要提交供应商文件夹,只需在您的开发机器上运行
composer install
,然后将供应商文件夹推到上面即可。要正确回答这个问题,我需要知道您是如何部署代码的。第一个问题是,通过FTP将整个项目文件夹从开发人员的机器复制到生产环境中,但这很糟糕,因为我们的上传速度很低。第二个是使用DeployHQ处理部署。DeployHQ获取我们的存储库并通过FTP将其推送到生产环境,但我不知道它是如何推送到供应商文件夹的。我不知道它是否使用git本身自动将5MB供应商文件夹转换为90MB。若并没有,第三种选择是在生产服务器上安装git并手动发出git pull。我们有一个糟糕的部署做法,所以我想从你那里得到一些信息。