将本地仓库推送到GitHub
一、Git全局账号配置
在终端中设置与GitHub关联的用户身份:
-
配置用户名与邮箱(提交时显示的身份):
git config --global user.name "Your GitHub Username" git config --global user.email "your_email@example.com" # 需与GitHub注册邮箱一致
- 此配置仅标识本地提交者身份,与GitHub登录凭证无关。
二、SSH密钥生成与绑定
通过SSH密钥实现免密认证(推荐):
2.1 生成密钥对(支持Ed25519或RSA算法):
ssh-keygen -t ed25519 -C "your_email@example.com" # Ed25519更安全高效
# 若系统不支持Ed25519,改用:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- 按提示选择密钥保存路径(默认
~/.ssh/id_ed25519
) - 设置密钥密码(可选,增强安全性)。
2.2 添加公钥到GitHub账户:
-
复制公钥内容:
cat ~/.ssh/id_ed25519.pub # 显示内容后手动复制
-
GitHub网页端操作:
- 进入
Settings
→SSH and GPG Keys
→New SSH Key
- 填写自定义标题(如
My Laptop
),粘贴公钥内容。
- 进入
- 密钥算法选择建议:
算法类型 命令示例 适用场景 Ed25519 ssh-keygen -t ed25519 -C "邮箱"
新系统首选(安全性高) RSA 4096 ssh-keygen -t rsa -b 4096 -C "邮箱"
兼容旧系统
三、测试SSH连接
验证密钥是否生效(可能要重启终端):
ssh -T git@github.com
- 首次连接需确认指纹,输入
yes
- 成功响应:
Hi username! You've successfully authenticated...
。
四、仓库配置与推送
4.1 新仓库克隆(直接使用SSH协议)
本地还没有项目代码的情况下
# 拉取远程仓库
git clone git@github.com:username/repo.git# 推送到远程仓库(后续可以简写git push)
git push -u origin main
# -u 参数将本地分支与远程分支关联,后续推送可简化为 git push
4.2 现有仓库切换协议(从HTTPS改为SSH)
本地已有项目代码,而GitHub仓库为空的情况。
# 添加远程仓库(首次设置远程仓库链接)
git remote add origin git@github.com:username/repo.git
git remote -v # 验证URL是否更新
git branch -M main # 强制分支重命名main
git push -u origin main # 推送到远程仓库(若分支为master则替换为master)# 设置远程仓库(已添加过远程仓库链接)
git remote set-url origin git@github.com:username/repo.git
git remote -v
4.3 分支重命名(可选)
步骤 1:重命名本地分支(master
→ main
)
# 确保当前在 master 分支(* master)
git branch -m master main # 重命名当前分支为 main
-m
参数表示移动/重命名分支[citation:5][citation:11]。
步骤 2:推送 main
分支到远程仓库
# 首次推送需建立跟踪关系
git push -u origin main # 推送本地 main 分支,并设置上游跟踪
-u
参数关联远程分支,后续可直接用git push
。
步骤 3:删除远程的 master
分支(可选)
若远程不需要 master
分支,避免混淆:
git push origin --delete master # 删除远程 master 分支