cloning into 'xxx' 卡住是 git 层问题,需先用 composer install -vvv 定位是否停在 git clone 命令,再手动测试 git clone 验证网络与 git 客户端;git 版本过低、未配 github token、https 代理缺失或缓存路径损坏均会导致此现象,镜像源对此无效。

Cloning into 'xxx' 卡住是 Git 层问题,不是 Composer 本身
Composer 在 --prefer-source 模式下会调用 git clone,卡在 Cloning into 'xxx' 表示 Git 命令阻塞,和 Composer 的依赖解析、PHP 配置、内存限制全无关系。常见于公司内网、教育网或某些 ISP 下对 GitHub 的 HTTPS/SSH 连接不稳定。
- 先验证是否真卡住:执行
composer install -vvv,盯住最后几行输出——如果停在类似Executing command (CWD): git clone --no-checkout 'https://github.com/monolog/monolog.git' '/path/to/vendor/monolog/monolog' --dissociate --reference '/root/.composer/cache/vcs/https---github.com-monolog-monolog.git/',且 60 秒无后续日志,基本可判定 Git 层超时 - 别急着改 Composer 配置,先手动试 Git:
git clone https://github.com/monolog/monolog.git /tmp/test-clone,看是否同样卡住 - 若手动克隆也失败,说明是网络或 Git 客户端问题;若成功,则可能是 Composer 缓存路径或权限异常(如
.composer/cache/vcs/下的 reference 仓库损坏)
Git 版本太低导致 --shallow-since 报错
Composer 2.x 在克隆 dev 分支或指定 commit 时会生成带 --shallow-since 或 --filter=blob:none 的命令,但 Git error: unknown option `shallow-since' 或静默退出,看起来像“卡住”。
- 检查 Git 版本:
git --version—— CentOS 7 默认的git 1.8.3必须升级 - 升级后务必运行:
git config --global http.sslVersion tlsv1.2,否则旧系统仍可能用 TLS 1.0 握手失败 - 临时绕过(仅限 Composer 2.2+):
composer install --prefer-source --no-shallow,但会拉全量历史,慢且占空间 - 退回到 Composer 1.x 是下策:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php --install-dir=/usr/local/bin --filename=composer --version=1.10.22
GitHub API 限流或未配 Token 导致 ZIP 回退失败
当 Composer 尝试从 GitHub 下 ZIP 包(https://api.github.com/repos/xxx/xxx/zipball/xxx)时,若没配 Token,每小时只有 60 次未认证请求配额。一旦耗尽,就会卡在 Downloading 并反复重试,日志里看不到错误,只看到光标不动。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 生成 Personal Access Token:GitHub → Settings → Developer settings → Personal access tokens → Generate new token,勾选
repo权限 - 写入全局认证文件:
composer config -g github-oauth.github.com your_token_here - 验证是否生效:
curl -H "Authorization: token your_token_here" https://api.github.com/rate_limit | jq '.rate.remaining',剩余数应 > 50 - 若项目含私有仓库,还需确保
composer.json中所有 Git 地址为 HTTPS 格式("https://github.com/user/repo.git"),而非git@github.com:(后者不走 API,也无法用 Token)
镜像源对 Git 克隆完全无效,必须单独处理
composer config -g repo.packagist 只影响 dist 包(ZIP)下载,对 "type": "vcs" 的包(包括 GitHub 上的 dev-main、dev-develop 或自建 GitLab 仓库)完全不起作用。此时换阿里云镜像毫无意义,还会掩盖真实问题。
- 确认是否用了 VCS 包:查
composer.json里require或repositories字段是否有"type": "vcs"或"url": "git@..."/"https://github.com/.../...git" - 强制走 ZIP 替代克隆:
composer install --prefer-dist(默认行为),避免触发 Git 调用 - 若必须用源码(如要 patch),改用代理:
git config --global http.https://github.com.proxy http://127.0.0.1:1080(需本地有 HTTP 代理) - Docker 环境下注意:Git 二进制路径可能被硬编码,
strace -e trace=execve composer install 2>&1 | grep git查实际调用路径,再用PATH=/opt/git/bin:$PATH composer install强制覆盖
Git 克隆阶段的问题最易误判为“网络慢”,实则常是协议不兼容、Token 缺失或路径被缓存锁定。关键动作永远是先 -vvv 看清到底卡在哪条命令,再针对性打补丁——而不是反复清缓存或换镜像。










