我在PHP项目中使用composer。我注意到我的供应商文件夹特别大。在检查里面的文件夹时,我注意到有些软件包非常大(约30Mb),但是已经检出的实际文件数量不超过几千字节; .git文件夹很大!
我正在处理一些限制性极强的主机,因此需要使用尽可能少的磁盘空间。
是否有可能让作曲家导入JUST实际的包文件,而不是维护git历史记录?或者,作曲家是否需要git历史记录才能了解它安装的软件包的版本等?我假设它可以根据composer.lock文件“记住”这个。
我看过很多页面表明我可以使用vanilla Git(link | link)来做我想要的事情,但是可以将编辑器配置为执行此操作吗? / p>
希望问题很清楚!
答案 0 :(得分:2)
请勿将.git
文件夹复制到网络主机。除非您有一个用例(就像它是部署方案中的关键组件),否则永远不应该这样做。
第二种方法是导入分发ZIP文件而不是克隆存储库(命令行选项--prefer-dist
),但这只能用于Github托管库的开箱即用,因为Github提供ZIP文件几乎所有东西都在一个已知位置,而Composer则使用它。对于您自己的托管git存储库,您可以手动或在Satis的帮助下创建已标记版本的ZIP文件,并将这些文件添加到您的库composer.json
,然后添加到您的主软件中。
答案 1 :(得分:0)
您可以使用以下命令从存储库中提取文件:
git archive HEAD | gzip > archive.tar.gz
这将丢失任何git历史记录,基本上你提取它的内容根本不会是一个git树。 如果你想把它变成一棵新树来跟踪这一点上的变化,你可以在这个目录中做一个git init并重新开始。