本文以本地项目:
C:\Users\奇哥\Desktop\bazi-web
为例,介绍如何完成 Git 初始化、清除代理、配置 SSH、连接 GitHub 和 Gitee,并将代码同时推送到两个平台。
一、准备工作
需要准备:
- 已安装 Git;
- 一个 GitHub 账号;
- 一个 Gitee 账号;
- 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_PROXY、HTTPS_PROXY 或 ALL_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
如果之前配置过错误的 origin、github 或 gitee,可以删除本地远程配置:
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 就能保持同步。