本指南记录了如何将本地 Git 仓库配置为通过单次
git push命令,同时将代码推送至 Gitee 和 GitHub 两个平台,并包含常见报错(如多 URL 冲突、SSH 权限拒绝)的排查与解决方案。
目录
- [一、 前置准备](#一、 前置准备)
- [二、 配置双推送 (SSH 方式)](#二、 配置双推送 (SSH 方式))
- [三、 踩坑与排查方案](#三、 踩坑与排查方案)
- [四、 日常使用与验证](#四、 日常使用与验证)
一、 前置准备
在进行配置前,请确保满足以下条件:
- Gitee 仓库 :已创建对应的项目仓库(例:
xxx/advanced-py)。 - GitHub 仓库 :必须提前在 GitHub 上创建一个同名的空白仓库 (不要勾选初始化 README 或
.gitignore,保持完全为空)。 - SSH 密钥 :本机已生成 SSH Key(通常在
~/.ssh/id_rsa.pub或~/.ssh/id_ed25519.pub)。生成命令:ssh-keygen -t ed25519 -C "用户名称"
二、 配置双推送 (SSH 方式)
步骤 1:清理历史冲突配置
如果之前多次修改过 pushurl,建议先清空已有的推送地址,防止出现 multiple values 错误:
bash
git config --unset-all remote.origin.pushurl
步骤 2:添加多推送地址
依次执行以下命令,为 origin 绑定 Gitee 和 GitHub 的 SSH 推送地址:
bash
# 1. 添加 Gitee 的 SSH 推送地址
git remote set-url --add --push origin git@gitee.com:xxx/advanced-py.git
# 2. 追加 GitHub 的 SSH 推送地址
git remote set-url --add --push origin git@github.com:xxx/advanced-py.git
# 3. 将默认拉取 (fetch) 地址也同步修改为 SSH 格式
git remote set-url origin git@gitee.com:xxx/advanced-py.git
步骤 3:验证远程配置
运行以下命令检查配置是否正确:
bash
git remote -v
正确输出示例:

三、 踩坑与排查方案
1. 报错:warning: remote.origin.pushurl has multiple values
-
原因 :之前曾多次添加过
pushurl,导致配置列表中存在重复或冲突的项。 -
解决:先清空配置,再重新添加:
bashgit config --unset-all remote.origin.pushurl
2. 报错:git@gitee.com: Permission denied (publickey)
-
原因:GitHub 推送成功,但 Gitee 拒绝连接。说明本地 SSH 公钥未配置到 Gitee 账号中。
-
解决:
-
查看并复制本地公钥:
bashcat ~/.ssh/id_ed25519.pub || cat ~/.ssh/id_rsa.pub -
打开 Gitee 设置 -> SSH 公钥,添加复制的公钥。

-
PS:Github同理

-
测试 SSH 连通性:
bashssh -T git@gitee.com返回
Hi xxx! You've successfully authenticated...即成功。
四、 日常使用与验证
配置完成后,以后只需执行一次标准的推送命令:
bash
git push origin master
预期输出日志:

当看到控制台分别打印了 github.com 与 gitee.com 的更新结果,即表示两端同步成功!