Git克隆卡在“Cloning into”是Git层超时,非Composer配置问题;根本原因是网络、认证、代理或SSL配置不当,需手动复现并逐层排查。

卡在Cloning into '/path/to/vendor/xxx' 是 Git 层超时,不是 Composer 配置问题
Composer 本身不处理 Git 克隆,它只是调用系统 git 命令。所以报错如 Cloning into '/path/to/vendor/myorg/private-lib' 后长时间无响应,本质是 git clone 卡住——此时改 process-timeout 或 http.timeout 完全无效。
常见诱因包括:企业网屏蔽 GitHub/GitLab 域名、SSH 连接被拦截、HTTPS 克隆未配 Token、Git 代理未设或超时太短。
- 先手动复现:运行
git clone https://github.com/myorg/private-lib.git /tmp/test-clone,看是否同样卡住 - 若卡在 SSH(
git@github.com:),检查ssh -T git@github.com是否通;不通则需配GIT_SSH_COMMAND="ssh -o ConnectTimeout=10" - 若用 HTTPS,确认已配置 GitHub Token:
composer config --global github-oauth.github.com <your-token>,且composer.json中仓库 URL 是https://github.com/myorg/private-lib.git(非git@) - 公司网络常用 HTTP 代理?必须同时设 Git 代理:
git config --global http.proxy http://proxy.example.com:8080,否则 Composer 调的git不走代理
私有 GitLab 仓库走 HTTPS 却提示 SSL certificate problem
这不是证书过期,而是 Git 默认不读系统 CA 证书路径,尤其在 Windows 或某些 Docker 镜像里。Composer 下载 ZIP 包时能过,但 git clone 直接失败。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 临时绕过(仅调试):
git config --global http.sslVerify false—— 不推荐上生产 - 正确做法:让 Git 信任系统证书,执行
git config --global http.sslCAInfo "/etc/ssl/certs/ca-certificates.crt"(Linux)或对应路径(Windows 可用curl-ca-bundle.crt) - 若用自签名内网 GitLab,把它的根证书追加到 CA 文件末尾,再指向该文件
- 注意:Composer 的
http.ssl-verify配置只影响 HTTP 下载,对git clone无作用
镜像源配置对私有仓库完全无效,别白换
repo.packagist 镜像只代理 Packagist 公共索引(packages.json),不代理任何 vcs 类型仓库(GitHub、GitLab、Bitbucket)。你在 composer.json 里写了 "type": "vcs",Composer 就会直连源站——换阿里云镜像毫无意义。
- 检查是否误将私有仓库塞进全局镜像:
composer config -g repo.packagist输出里不该出现你的内网 GitLab 地址 - 项目级私有源必须显式声明在
repositories字段,且type必须为vcs,URL 必须是完整克隆地址(https://gitlab.internal/mygroup/mylib.git) - 若想加速,只能靠本地 Git 缓存(
git clone --reference)或搭建私有 Packagist 镜像(如 Satis、Private Packagist),不是 Composer 侧能解决的
CI 环境下私有仓库克隆失败,90% 是权限或元数据问题
本地 OK、CI 报超时,大概率不是网络,而是环境差异:无 SSH Agent、无 GitHub Token、WSL2/NTFS 符号链接限制、或 Git 配置未继承。
- GitHub Actions:确保
GITHUB_TOKEN注入到auth.json,且composer install前运行composer config --global github-oauth.github.com ${{ secrets.GITHUB_TOKEN }} - GitLab CI:用
CI_JOB_TOKEN替代个人 Token,并设git config --global url."https://gitlab.com/api/v4/projects/".insteadOf "https://gitlab.com/"实现自动认证 - WSL2 或 Docker Desktop for Mac:禁用
vendor目录的符号链接(composer install --no-scripts --no-plugins后再启用),避免git clone因元数据挂起 - 永远加
-vvv:composer install -vvv才能看到最后执行的git命令,否则你只看到“卡住”,看不到它到底在等什么
http.proxy 就万事大吉,但 git clone 仍走默认路由;你以为开了镜像就覆盖所有依赖,却没意识到私有 vcs 根本不经过那条链路。

















