我们通常保留vendor
文件夹,.gitignore
但不得不禁用它,因为我们在生产服务器上没有 ssh 访问权限,我们需要composer update
不时运行。
因此,我们想出了一个想法,即删除.gitignore
vendor 文件夹,composer update
在我们的本地计算机上执行,将所有内容推送到存储库并将其部署FTP
到我们的生产服务器。(我们DeployHQ
用于做 Repository->Production transfer。)
但是,现在我的本地项目文件夹大小为 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 知道它是 Doctrine,所以它符号链接到 Doctrine 的存储库,并将从 Doctrine 的存储库下载这些文件
git pull
?)我们能否安全地将生产环境中的 90MB 供应商文件夹替换为 git 存储库中的 5MB 供应商文件夹?(通过在生产环境中执行 git pull,或通过 FTP 将存储库文件夹复制到生产环境。)
您如何自己处理供应商文件夹?在生产环境中通过 SSH保持运行
.gitignore
并执行 composer update 命令,或者将它们推送到您的 git 存储库并将您的存储库推送到生产服务器?还有,哪个更好?
谢谢你。
附言。生产服务器上既没有安装 git 也没有安装 composer。
附言。我们的上传速度非常低,上传 90MB 大约需要一个小时。让我也注意到这一点,因为我们寻找最快的替代方案。