1

我在 PHP 项目中使用作曲家。我注意到我的供应商文件夹特别大。在检查里面的文件夹后,我注意到一些包非常大(~30Mb),但实际检出的文件不超过几千字节;.git 文件夹很大!

我正在开发一些极其严格的主机,因此需要使用尽可能少的磁盘空间。

是否可以让作曲家只导入实际的包文件,而不维护 git 历史记录?或者,作曲家是否需要 git 历史来了解它安装的包的版本等?我假设它可以根据 composer.lock 文件“记住”这一点。

我已经看到许多页面表明可以使用 vanilla Git(链接|链接)来完成我所要求的操作,但是可以将作曲家配置为执行此操作吗?

希望问题很清楚!

4

2 回答 2

2

不要将.git文件夹复制到网络主机。除非您有一个用例(就像它是您的部署方案中的关键组件),否则永远不应该这样做。

第二种方法是导入分发 ZIP 文件而不是克隆存储库(命令行选项--prefer-dist),但这仅适用于 Github 托管库,因为 Github 为已知位置的几乎所有内容提供 ZIP 文件,并且Composer 使用它。对于您自己托管的 git 存储库,您可以手动或在 Satis 的帮助下创建标记版本的 ZIP 文件,并将这些文件添加到您的库composer.json中,然后添加到您的主软件中。

于 2013-10-06T23:47:34.200 回答
0

您可以使用以下方法从存储库中提取文件:

git archive HEAD | gzip > archive.tar.gz

这将丢失任何 git 历史记录,基本上你提取它所得到的根本不是 git 树。如果你想把它变成一棵新的树来跟踪从现在开始的变化,你可以在这个目录中执行一个 git init 并重新开始。

于 2013-10-04T15:20:53.363 回答