Mac 本地项目推送至 GitHub 完整指南

Mac 本地项目推送至 GitHub 完整指南

适用场景:已在本地初始化 Git 仓库,需要推送到 GitHub 远程仓库。

前置条件

  • 已安装 Git(macOS 自带或 brew install git
  • 已注册 GitHub 账号
  • 已在 GitHub 创建空的远程仓库(不要勾选 "Add a README file",否则会产生冲突)

第一步:检查本地 SSH 密钥

macOS 默认 SSH 密钥路径为 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。

bash 复制代码
# 查看是否有现有密钥
ls -la ~/.ssh/

如果没有密钥,生成一对:

bash 复制代码
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 一路回车使用默认路径即可

复制公钥内容:

bash 复制代码
cat ~/.ssh/id_rsa.pub

将输出的内容完整复制,前往 GitHub → Settings → SSH and GPG Keys → New SSH Key,粘贴并保存。


第二步:配置 SSH Config(解决 22 端口被封问题)

部分网络环境(公司网络、部分 ISP)会封禁 SSH 默认的 22 端口,导致 git push 失败。通过以下配置使用 443 端口(HTTPS 端口)绕过限制。

编辑 SSH 配置文件:

bash 复制代码
vi ~/.ssh/config

添加以下内容:

bash 复制代码
Host github.com
    Hostname ssh.github.com
    Port 443
    User git
    IdentityFile ~/.ssh/id_rsa
    IdentitiesOnly yes

说明:

  • Hostname ssh.github.com --- GitHub 提供的 SSH-over-HTTPS 域名
  • Port 443 --- 走 HTTPS 端口,通常不会被防火墙拦截
  • IdentityFile --- 指定使用的私钥路径
  • IdentitiesOnly yes --- 只使用指定的密钥,避免尝试其他密钥导致失败

第三步:测试 SSH 连接

bash 复制代码
ssh -T git@github.com

成功时会输出:

vbnet 复制代码
Hi <你的用户名>! You've successfully authenticated, but GitHub does not provide shell access.

常见错误:

  • Permission denied (publickey) → 公钥未添加或 SSH config 配置错误
  • Connection timed out → 检查网络代理设置,或确认 SSH config 中的 Hostname 和 Port 是否正确

第四步:设置远程仓库地址

首次添加远程仓库:

bash 复制代码
git remote add origin git@github.com:<用户名>/<仓库名>.git

已有远程地址需要修改(从 HTTPS 切换为 SSH):

bash 复制代码
git remote set-url origin git@github.com:<用户名>/<仓库名>.git

验证远程地址:

bash 复制代码
git remote -v
# 预期输出:
# origin  git@github.com:<用户名>/<仓库名>.git (fetch)
# origin  git@github.com:<用户名>/<仓库名>.git (push)

第五步:推送代码

bash 复制代码
# 首次推送(设置上游分支关联)
git push --set-upstream origin main

# 后续推送只需:
git push

附录:HTTPS 方式(备选)

如果 SSH 配置遇到问题,可以临时使用 HTTPS 方式:

bash 复制代码
# 设置远程地址为 HTTPS
git remote set-url origin https://github.com/<用户名>/<仓库名>.git

# 首次推送会要求输入 GitHub 用户名和 Token(不是密码)
git push --set-upstream origin main

GitHub 已废弃密码认证,需使用 Personal Access Token 代替密码。


快速操作清单

bash 复制代码
# 1. 生成密钥(如已有则跳过)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 2. 复制公钥 → 添加到 GitHub Settings
cat ~/.ssh/id_rsa.pub

# 3. 配置 SSH(解决 22 端口问题,可选但推荐)
echo '
Host github.com
    Hostname ssh.github.com
    Port 443
    User git
    IdentityFile ~/.ssh/id_rsa
    IdentitiesOnly yes
' >> ~/.ssh/config

# 4. 测试连接
ssh -T git@github.com

# 5. 设置远程地址
git remote add origin git@github.com:<用户名>/<仓库名>.git

# 6. 推送
git push --set-upstream origin main
相关推荐
峰向AI3 小时前
告别 API 费用! 这个开源工具让你的 AI 助手在本地运行
github
乱码三千5 小时前
使用ComfyUI+MinMax-H3音视频模型生成视频
前端·后端·github
LiaCode6 小时前
别让 AI 把仓库写成“代码平行宇宙”:从 Deslop 看生成前查重
前端·后端·github
m4Rk_7 小时前
【论文阅读】Agent 记忆机制(62):DCM-Agent——用双簇记忆化解优化问题的多范式冲突
论文阅读·人工智能·学习·开源·github
逛逛GitHub7 小时前
GPT-6 Astra 上线 24 小时,看看外网爆火的惊艳玩法。
github
golang学习记7 小时前
Cursor Origin:Cursor要造一个AI时代的Github
人工智能·github·cursor
u1301307 小时前
GitHub 热榜项目:日榜(2026-09-06)
github
mr_g9 小时前
SmartCall源码解析:实时对话轮次拦截器RealtimeTurnInterceptor实现原理
github
zzzll111110 小时前
新手如何使用 GitHub?从零开始的完整入门指南
github
CoderJia程序员甲11 小时前
GitHub 热榜项目 - 周榜(2026-09-06)
ai·大模型·llm·github·ai教程