【发布时间】:2013-10-22 02:32:14
【问题描述】:
我有一个项目,我使用 Git 在这个项目中进行版本控制。在这个项目中,我必须添加一些库作为依赖项(更具体地说是 PHPUnit 和 Guzzle)。要求说这些库必须存在于我的项目的文件夹中,并且我必须使用 composer 来安装/更新它们。
所以我这样做了,我的目录结构看起来像这样:
project
|----- .git
|----- libs
|---- guzzle
|---- .git
|---- phpunit
|---- .git
所以guzzle 和phpunit 文件夹都有一个单独的.git 文件夹。这是因为据我所知,composer 从 github 克隆了 master 分支,以便检索这些库的源代码。
所以我对远程存储库进行了提交+推送。但是,当其他人从该存储库中提取时,libs/guzzle 和 libs/phunit 文件夹中包含的文件不会出现在该人的工作目录中。
我认为这是因为有 2 个 .git 文件夹。
我该如何解决这个问题?我尝试在作曲家的文档中搜索一种在composer.json 中指定的方法,以便仅获取最后一个快照。但我找不到任何东西。
我也考虑过删除.git 目录,但如果我尝试在几个月内执行composer update,这不会破坏一切吗?
过去有没有人遇到过这种问题?你是怎么解决的?
【问题讨论】:
-
我的猜测是子模块
-
@Soundz 你能再具体一点吗?
-
composer(以及其他类似工具,如 Maven)的巨大好处之一是您不必在代码中包含依赖项,composer 会为需要它们的人下载依赖项。只需将整个
libs/文件夹放在 .gitignore 中,然后让人们使用 composer 下载依赖项。
标签: php git composer-php