Hugo博客公告弹窗

将本地 Git 项目同时上传到 GitHub 和 Gitee

本文以本地项目:

C:\Users\奇哥\Desktop\bazi-web

为例,介绍如何完成 Git 初始化、清除代理、配置 SSH、连接 GitHub 和 Gitee,并将代码同时推送到两个平台。

一、准备工作

需要准备:

  1. 已安装 Git;
  2. 一个 GitHub 账号;
  3. 一个 Gitee 账号;
  4. GitHub 和 Gitee 上各创建一个空仓库。

GitHub 仓库地址:

https://github.com/woniu336/bazi-web

Gitee 仓库地址:

https://gitee.com/dayu777/bazi-web

创建仓库时,建议不要勾选 README、.gitignore 和 License,避免首次推送时产生冲突。

二、检查 Git 是否安装

打开 PowerShell,执行:

git --version

如果出现版本号,说明 Git 已经安装。

三、进入本地项目目录

cd "C:\Users\奇哥\Desktop\bazi-web"

查看当前项目状态:

git status

如果提示:

fatal: not a git repository

说明当前目录还没有初始化 Git,需要执行:

git init

四、配置 Git 用户信息

执行:

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

例如:

git config --global user.name "woniu336"
git config --global user.email "你的邮箱@example.com"

查看配置是否成功:

git config --global user.name
git config --global user.email

五、清除 Git 中已有的代理

之前出现的:

ServicePointManager 不支持 socks5 代理

通常是因为 Git 配置了 SOCKS5 代理,而登录组件不支持。

先查看代理:

git config --global --get http.proxy
git config --global --get https.proxy

如果不需要代理,清除配置:

git config --global --unset http.proxy
git config --global --unset https.proxy

如果之前配置过远程专用代理,也可以检查:

git config --global --get-regexp proxy

如果仍然存在代理配置,可以根据显示的配置名称删除。

六、检查 PowerShell 环境变量代理

如果清除 Git 配置后仍然出现代理错误,检查系统环境变量:

Get-ChildItem Env:*proxy*

如果看到 HTTP_PROXYHTTPS_PROXYALL_PROXY,可以在当前 PowerShell 窗口中清除:

Remove-Item Env:HTTP_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:HTTPS_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:ALL_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:http_proxy -ErrorAction SilentlyContinue
Remove-Item Env:https_proxy -ErrorAction SilentlyContinue
Remove-Item Env:all_proxy -ErrorAction SilentlyContinue

七、生成 SSH 密钥

SSH 方式不需要每次输入 GitHub 或 Gitee 的用户名和密码。

执行:

ssh-keygen -t ed25519 -C "你的邮箱"

之后一路按回车,使用默认保存位置即可。

生成完成后,公钥通常位于:

C:\Users\奇哥\.ssh\id_ed25519.pub

复制公钥:

Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub" | Set-Clipboard

八、将 SSH 公钥添加到 GitHub

登录 GitHub,进入:

Settings → SSH and GPG keys → New SSH key

填写标题,例如:

Windows Laptop

将刚刚复制的公钥粘贴到 Key 输入框中,然后保存。

测试 GitHub SSH 连接:

ssh -T git@github.com

第一次连接时如果询问是否继续,输入:

yes

如果出现类似内容:

Hi your-name! You've successfully authenticated

说明 GitHub SSH 配置成功。

九、将 SSH 公钥添加到 Gitee

登录 Gitee,进入:

设置 → SSH 公钥 → 添加公钥

将同一个公钥粘贴进去并保存。

测试 Gitee SSH 连接:

ssh -T git@gitee.com

如果提示认证成功,说明 Gitee SSH 配置成功。

十、创建 .gitignore 文件

在提交代码之前,建议创建 .gitignore,避免把依赖、构建文件和密钥上传到仓库。

对于 Next.js 项目,可以包含:

node_modules/
.next/
out/
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
*.log

不要将以下内容提交到 GitHub 或 Gitee:

  • API 密钥;
  • 数据库密码;
  • Token;
  • .env 文件;
  • 私人证书;
  • 大型构建产物。

十一、设置本地分支名称

查看当前分支:

git branch --show-current

如果希望使用 master 分支:

git branch -M master

如果项目使用 main 分支,则后续命令中的 master 全部替换成 main

十二、提交本地代码

查看项目状态:

git status

将代码加入暂存区:

git add .

查看哪些文件即将提交:

git status

创建第一次提交:

git commit -m "Initial commit"

如果提示:

nothing to commit

说明代码已经提交过,可以继续下一步。

十三、清理旧的远程地址

先查看当前远程配置:

git remote -v

如果之前配置过错误的 origingithubgitee,可以删除本地远程配置:

git remote remove origin
git remote remove github
git remote remove gitee

如果提示某个远程地址不存在,可以忽略。

这些命令只删除本地的远程地址配置,不会删除 GitHub 或 Gitee 上的仓库。

十四、添加 GitHub 和 Gitee 的 SSH 地址

注意:地址中要写 git@,不要写成 git\@,也不要添加 Markdown 的方括号和圆括号。

git remote add github git@github.com:woniu336/bazi-web.git
git remote add gitee git@gitee.com:dayu777/bazi-web.git

十五、检查远程仓库配置

git remote -v

正常情况下应该显示:

github  git@github.com:woniu336/bazi-web.git
github  git@github.com:woniu336/bazi-web.git
gitee   git@gitee.com:dayu777/bazi-web.git
gitee   git@gitee.com:dayu777/bazi-web.git

也可以分别查看:

git remote get-url github
git remote get-url gitee

十六、首次推送到 GitHub

git push -u github master

十七、首次推送到 Gitee

git push -u gitee master

推送成功后,可以分别刷新 GitHub 和 Gitee 的仓库页面查看代码。

SSH 方式正常情况下不会要求输入用户名和密码。

十八、以后同时上传代码

以后每次修改代码后,执行:

cd "C:\Users\奇哥\Desktop\bazi-web"
git status
git add .
git commit -m "更新项目内容"
git push github master
git push gitee master

这里需要执行两次 git push,分别推送到 GitHub 和 Gitee。

十九、从 GitHub 获取最新代码

建议将 GitHub 作为主仓库,Gitee 作为同步仓库。

获取 GitHub 最新代码:

git pull --rebase github master

获取代码后,再将更新推送到 Gitee:

git push gitee master

二十、查看提交记录

查看简洁的提交记录:

git log --oneline

查看当前分支和远程跟踪状态:

git branch -vv

查看哪些文件发生了变化:

git status

二十一、如果远程仓库不是空仓库

如果 GitHub 或 Gitee 创建仓库时已经添加了 README,首次推送可能出现:

rejected
non-fast-forward

可以先获取远程内容:

git pull --rebase github master

如果 GitHub 和本地内容没有冲突,再推送:

git push github master

然后同步到 Gitee:

git push gitee master

二十二、常见问题处理

1. remote already exists

如果出现:

remote github already exists

说明远程地址已经存在,可以修改地址:

git remote set-url github git@github.com:woniu336/bazi-web.git

Gitee 同理:

git remote set-url gitee git@gitee.com:dayu777/bazi-web.git

2. No such remote

如果出现:

No such remote 'github'

说明远程地址还不存在,应使用:

git remote add github git@github.com:woniu336/bazi-web.git

3. Permission denied

如果出现:

Permission denied (publickey)

依次检查:

ssh -T git@github.com
ssh -T git@gitee.com

并确认公钥已经同时添加到了 GitHub 和 Gitee。

4. 代理错误

如果出现:

ServicePointManager 不支持 socks5 代理

再次清除代理:

git config --global --unset http.proxy
git config --global --unset https.proxy

使用 SSH 地址时,通常不需要配置 Git 的 HTTP 代理。

二十三、如果以后需要重新添加代理

如果网络环境必须使用代理,先确认代理软件提供的是 HTTP 端口。

例如 HTTP 端口为 7890

git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

检查配置:

git config --global --get http.proxy
git config --global --get https.proxy

不要直接配置成:

socks5://127.0.0.1:7890

因为 Git Credential Manager 可能不支持 SOCKS5 代理。

需要注意:

  • Git 的 HTTP 代理主要影响 HTTPS 地址;
  • 当前使用 SSH 地址时,HTTP 代理通常不会影响 git push
  • 如果 SSH 本身无法连接,需要单独配置 SSH 代理,不能只配置 http.proxy

二十四、推荐的日常操作流程

以后可以固定使用下面这组命令:

cd "C:\Users\奇哥\Desktop\bazi-web"

git pull --rebase github master

git add .
git commit -m "更新项目内容"

git push github master
git push gitee master

完整流程可以概括为:

修改代码
git pull --rebase github master
git add .
git commit
git push github master
git push gitee master

这样,GitHub 和 Gitee 就能保持同步。

CC BY-NC-SA 4.0 转载请注明
最后更新于 2026-09-01 15:31