如何使用 composer 安装部分 git 存储库?
Posted
技术标签:
【中文标题】如何使用 composer 安装部分 git 存储库?【英文标题】:How to use composer to install part of a git repository? 【发布时间】:2013-01-07 07:26:19 【问题描述】:我只想需要一个 git 存储库的子部分(而不是完整的东西)。我想这样做的原因是因为存储库很大。
在我的情况下,存储库是:https://github.com/pubnub/pubnub-api.git,我只想要 /php 目录。
我在 composer 中定义了以下包:
"type": "package",
"package":
"name": "pubnub",
"version": "dev-master",
"source" :
"url": "https://github.com/pubnub/pubnub-api.git",
"type": "git",
"reference":"master"
,
有什么建议吗?
【问题讨论】:
请记住,您能做的最好的事情是检索一个裸存储库(工作目录中没有任何内容),然后签出php
中的文件。您仍然会使用 git clone 获得所有历史记录(我猜 Composer 在幕后所做的)。
我正在寻找相同的行为。运气好吗?
我有兴趣通过 composer 获取部分存储库。
【参考方案1】:
似乎 php 目录已移至此处https://github.com/pubnub/php 的自己的存储库中。这可能对这个项目有所帮助,但不知道如何从主仓库和作曲家实现这一点......
【讨论】:
哦,我需要另一个没有分割的存储库。 @flavien,感谢您的注释,但它没有回答一般问题。【参考方案2】:鉴于"Is there any way to clone a git repository's sub-directory only?" 是"No" 的答案,并且作曲家需要子目录签出功能来满足所需的功能,那么我建议最好的作曲家可以做的是签出整个内容然后删除你不想。
简而言之:不可能。
更长的答案: 是 git 可以做一个sparse checkout 所以理论上作曲家有朝一日可以支持该功能。您可以使用autoload 字段仅加载您想要的代码部分(即,不加载整个库)。
【讨论】:
以上是关于如何使用 composer 安装部分 git 存储库?的主要内容,如果未能解决你的问题,请参考以下文章
Composer Github 私有存储库无法使用给定的密钥
Composer - 添加没有 composer.json 的 git 存储库
ubuntu:如何使用 sudo 使用 composer 安装私有存储库