可行,需确保私有仓库含合法composer.json且name格式为vendor/name;通过SSH或HTTPS+PAT配置Git认证;执行composer create-project时须用--repository-url指定源地址。

直接用 composer create-project 基于私有 Git 仓库(如 GitHub、GitLab 或自建 Git 服务器)创建项目是可行的,但需要确保 Composer 能正确访问和认证私有仓库。
确认私有仓库支持作为 Composer 包
你的私有仓库必须满足以下条件:
- 根目录下有合法的
composer.json文件(定义name、type、autoload等) -
composer.json中的name字段格式为vendor/name(例如myorg/my-template),且全局唯一 - 仓库默认分支(通常是
main或master)包含可安装的代码结构
配置 Git 认证(关键步骤)
Composer 通过 Git 下载私有仓库时,需能无交互地拉取代码。推荐方式:
-
SSH 方式(推荐):将私钥添加到本地 SSH agent,并确保仓库 URL 是
git@github.com:myorg/my-template.git格式 -
HTTPS + Personal Access Token(PAT):在 GitHub/GitLab 设置中生成 token,然后用 URL 形式:
https://TOKEN@github.com/myorg/my-template.git(注意:token 需有repo权限) - 避免使用账号密码(多数平台已禁用)
执行 create-project 命令
语法如下(以 SSH 为例):
composer create-project myorg/my-template my-new-project --repository-url=https://github.com/myorg/my-template.git
说明:
-
myorg/my-template必须与仓库中composer.json的name完全一致 -
--repository-url显式指定源地址,告诉 Composer 去哪找这个包(否则会去 packagist.org 找,找不到就报错) - 若仓库未在 Packagist 注册,
--repository-url是必需的 - 可加
-s dev指定分支(如git@github.com:myorg/my-template.git#dev-feature),但更推荐用--stability=dev+ 分支别名
进阶:注册私有仓库到 Composer 全局配置(可选)
如果多个项目都基于同一私有模板,可在 ~/.composer/auth.json 或项目级 auth.json 中预设凭证:
{"http-basic": {"github.com": {"username": "token", "password": "ghp_..."}}}
或在 composer.json 中声明仓库:
"repositories": [{"type": "vcs", "url": "git@github.com:myorg/my-template.git"}]
这样后续运行 create-project myorg/my-template 就无需再传 --repository-url。










