场景描述
在日常开发中,有时需要将同一份代码同时推送到内网私有 GitLab 和 Gitee 两个远程仓库。内网 GitLab 用于团队协作开发,Gitee 用于代码备份或对外展示。
本文介绍如何通过配置两个独立的 remote 来实现:git add 和 git commit 只做一次,git push 分别推送到两个远程仓库。
1. 远程仓库配置
1.1 查看当前远程仓库
git remote -v
1.2 配置两个 remote
git remote add origin http://your-internal-gitlab.com/group/project.git
git remote add gitee https://gitee.com/your-username/your-project.git
| Remote 名称 | 目标 |
|---|---|
| origin | 内网 GitLab |
| gitee | Gitee(码云) |
2. 完整提交流程
2.1 标准流程
git status
git add .
git commit -m "提交说明"
git push origin 分支名
git push gitee 分支名
2.2 首次推送(建立关联)
git push -u origin 分支名
git push -u gitee 分支名
2.3 一条命令完成
git add . && git commit -m "提交说明" && git push origin 分支名 && git push gitee 分支名
3. 关键点总结
- git add 和 git commit 只做一次
- git push 需要执行两次,分别指定不同的 remote
- origin → 内网 GitLab
- gitee → Gitee(码云)
- 第一次推送用 -u 建立上下游关联
4. 进阶:一键推送到所有仓库
git remote set-url --add --push origin http://your-internal-gitlab.com/group/project.git
git remote set-url --add --push origin https://gitee.com/your-username/your-project.git
这样 git push origin 分支名 会自动推送到两个仓库。
5. 常见问题
Q: 推送提示认证失败?检查 Gitee 是否已配置 SSH Key 或 Personal Access Token。
Q: 两个仓库分支不同怎么办?建议保持分支名一致。