github-protocols是Composer中定义从GitHub拉取包时协议优先级的配置项,默认为["https","ssh"],优先使用HTTPS,失败后尝试SSH。HTTPS无需SSH密钥,适合多数场景,但私有仓库需Token认证;SSH需配置公钥,适合自动化环境,但可能受防火墙限制。可通过composer.json或命令行设置,如composer config -g github-protocols https强制使用HTTPS。合理配置可提升克隆成功率,避免认证或网络问题。

Composer 的 github-protocols 配置项决定了在从 GitHub 拉取包时使用的协议优先级顺序。它直接影响 Composer 在执行 git clone 时选择使用哪种协议(如 https、ssh 等),从而影响克隆是否成功、是否需要认证、以及访问速度等。
该配置项是一个数组,定义了 Composer 尝试与 GitHub 通信时使用的协议列表及其优先级。默认值通常是:
["https", "ssh"]这意味着 Composer 会优先尝试通过 HTTPS 克隆 GitHub 仓库,如果失败或不可用,则尝试 SSH。
每种协议在实际克隆过程中的行为不同:
如果你的网络限制了某些端口(例如公司防火墙屏蔽了 SSH 的 22 端口),使用 ssh 可能失败。此时应确保 https 在前面,或仅保留 https。
你可以在全局或项目级别的 composer.json 中设置:
也可以通过命令行设置全局配置:
composer config -g github-protocols https这将强制 Composer 始终使用 HTTPS 协议从 GitHub 克隆仓库。
若你希望优先使用 SSH(比如你已配置好密钥且拥有多个私有仓库):
composer config -g github-protocols ssh https当 Composer 安装一个托管在 GitHub 上的包时,它会根据 github-protocols 列表依次尝试协议。例如:
https://github.com/vendor/package.git
git@github.com:vendor/package.git
如果你只允许 HTTPS,但未登录或 Token 失效,Composer 会提示认证错误。如果只允许 SSH 但未配置密钥,克隆会失败。
注意:Composer 会自动将 GitHub 的 Git URL 映射为对应协议格式,不需要手动指定。
基本上就这些。合理设置 github-protocols 能避免克隆中断、提升安装成功率,尤其在复杂网络或私有仓库场景下尤为重要。
以上就是composer的"github-protocols"配置项如何影响git克隆的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号