迁移私有Composer包需先镜像推送代码至GitHub,再配置SSH或Deploy Key权限,接着更新composer.json中仓库地址为GitHub URL,最后测试依赖安装。1. 使用git clone --mirror和git push --mirror完整迁移代码;2. 在GitHub设置Deploy Key或添加SSH私钥确保访问权限;3. 修改项目composer.json的repositories指向新URL;4. 清除缓存并运行composer install验证拉取与版本一致性。操作完成后可停用GitLab仓库。

将私有的 Composer 包从 GitLab 迁移到 GitHub,主要涉及代码迁移、访问权限配置和 Composer 配置更新。只要操作得当,整个过程可以平滑完成,不影响现有项目依赖。
1. 将代码仓库迁移到 GitHub
把私有仓库从 GitLab 复制到 GitHub,最直接的方式是镜像推送:
- 克隆原有 GitLab 仓库(使用 --mirror 参数保留完整历史)
- 在 GitHub 上创建新的私有仓库(不要初始化 README 或 .gitignore)
- 将本地镜像推送到 GitHub
具体命令如下:
git clone --mirror git@gitlab.com:your-username/your-package.git
cd your-package.git
git remote set-url origin git@github.com:your-username/your-package.git
git push --mirror
这样会复制所有分支、标签和提交历史。
2. 更新 SSH 或 Deploy Key 权限
GitHub 和 GitLab 的 SSH 密钥不互通,需重新配置访问凭证:
- 如果使用 SSH 公钥认证,确保你的服务器或本地环境已添加对应的私钥
- 如果是 CI/CD 环境或需要无交互拉取,建议在 GitHub 上为该仓库设置 Deploy Key,并赋予读取权限
- 将私钥配置到相应环境的 SSH agent 或 CI 变量中
Composer 安装时通过 SSH 拉取代码,因此必须保证运行 composer install 的环境能访问新仓库。
3. 更新 composer.json 中的仓库地址
在依赖该项目的其他 Composer 包中,修改 composer.json 的 repositories 配置:
原 GitLab 地址:
"repositories": [
{
"type": "vcs",
"url": "git@gitlab.com:your-username/your-package.git"
}
]
改为 GitHub 地址:
"repositories": [
{
"type": "vcs",
"url": "git@github.com:your-username/your-package.git"
}
]
保存后运行 composer clear-cache 和 composer update 触发重新解析源。
4. 测试依赖安装是否正常
执行以下步骤验证迁移成功:
- 删除 vendor 目录和 composer.lock(测试环境下)
- 运行 composer install,确认能正常拉取新地址的包
- 检查版本号、文件内容是否一致
若出现权限错误,检查 SSH 是否能正常连接 GitHub:
ssh -T git@github.com
基本上就这些。迁移完成后,可逐步下线 GitLab 仓库,确保所有团队成员和部署环境都切换到新源。整个过程不复杂,但要注意密钥和 URL 的同步更新。










