文章目录
❓前言:按照传统方式推送,发生错误
之前推送的代码和笔记都存放在国内的Gitee中,作为小白第一次使用GitHub,然而遇到了一些问题。
如果用国内Gitee的方式 | 命令如下 |
---|---|
Gitee上创建仓库 | https://XXXXXXXXX.git |
本地初始化 | git init |
拉取代码 | git clone https://XXXXXXXXX.git |
添加远程仓库地址 | git remote add origin <地址> |
设置当前分支为 master | git branch -M master |
添加全部文件并提交 | git add . git commit -m “first commit” |
推送到 Gitee 的 master 分支 | git push -u origin master |
我按照以上流程操作github,出现如下报错:
$ git push -u origin master
fatal: unable to access 'https://github.com/AlgorithmBingo/Java.git/': Failed to connect to github.com port 443 after 21076 ms: Couldn't connect to server
也就是这表示 Git 无法通过 HTTPS 的 443 端口连接 GitHub,墙的问题。
思考我的现状,排查原因,列出可能的问题,逐一解决:
我的目前方式 | 可能的原因 | 建议操作 |
---|---|---|
代理 + VPN 访问 GitHub | 代理/VPN配置没作用,或Git没有走代理,或公司网络限制 | 设置 Git 专用代理 或换用 SSH |
报端口443超时 | 1. 网络被封锁(公司屏蔽HTTPS) 2. Git未走代理/VPN 3. 代理/VPN服务不可用 | 尝试 curl https://github.com 检查连通性;配置 Git 代理或换网络 |
用 HTTPS 远程地址 https://github.com/... | 走的是 443 端口,容易被拦截 | 改成 SSH 地址 git@github.com:... 避免443限制 |
Git push/pull 报错 | 端口被拦截 / 未认证 / 没配置代理 / 未设置 SSH | 配置 Git 代理或设置 SSH Key 并换成 SSH 地址 |
浏览器能访问 GitHub,但 Git 不行 | Git 未走系统代理;命令行网络不同 | 配置 Git 代理,或 Git 使用 SSH 协议 |
在公司内网 | 公司限制 GitHub 域名或端口 | 用手机热点测试确认,再决定是否走 SSH + 自建代理方案 |
于是有了以下操作,详细步骤一步步来,防止因为小细节发生错误:
✅ 现在的目标是:
把 Git 从 HTTPS(容易被限制) 改成 SSH(更稳定)。
🧩 一、生成 SSH Key(只做一次,没生成过才需要)
-
打开 Git Bash 或 CMD,执行:
ssh-keygen -t ed25519 -C "你的GitHub邮箱"
如果你用的是旧系统不支持 ed25519,可用
rsa
:ssh-keygen -t rsa -b 4096 -C "你的GitHub邮箱"
如图:
-
当提示输入保存路径时,直接回车,默认保存到:
C:\Users\你的用户名\.ssh\id_ed25519
-
连续回车三次(不设密码也没问题):直到出现这样的图标
🧩 二、添加 SSH Key 到 GitHub
-
查看公钥内容(复制下面这个文件的内容):
cat ~/.ssh/id_ed25519.pub
或 Windows 命令行:
type %USERPROFILE%\.ssh\id_ed25519.pub
-
登录 GitHub → 右上角头像 → Settings → 左侧 SSH and GPG keys
-
点击 New SSH key:
- Title:随便写(如“My Laptop”)
- Key:粘贴你刚才复制的公钥内容(从
ssh-ed25519
开头)
🧩 三、修改你的 Git 项目的远程地址为 SSH
-
进入你的项目目录:
cd 你的项目路径
-
设置远程地址为 SSH(你问的对,就是这个):
git remote set-url origin git@github.com:AlgorithmBingo/Java.git
-
验证是否设置成功:
git remote -v
输出应该是:
🧪 四、测试是否通了
ssh -T git@github.com
第一次会提示是否连接,输入 yes
,如果看到:Hi XXX!说明 SSH 成功连上 GitHub。
🚀 五、推送代码
git push -u origin master
成功!
就不再走 HTTPS,绕过 443 端口了。
✅总结: Gitee(HTTPS) vs GitHub(SSH)首次提交完整流程
操作步骤 | 用 Gitee(HTTPS)方式 | 用 GitHub(SSH)方式 |
---|---|---|
🏗️ 创建远程仓库 | 登录 Gitee → 创建仓库(获取地址如 https://gitee.com/用户名/仓库名.git ) | 登录 GitHub → 创建仓库(获取地址如 git@github.com:用户名/仓库名.git ) |
🖥️ 本地初始化 | git init | git init |
🌍 添加远程地址 | git remote add origin https://gitee.com/用户名/仓库名.git | git remote add origin git@github.com:用户名/仓库名.git 基本上只有这里换了 |
🛠️ 设置当前分支 | git branch -M master | git branch -M master |
📦 添加并提交代码 | git add . git commit -m "first commit" | git add . git commit -m "first commit" |
🚀 推送到远程仓库 | git push -u origin master | git push -u origin master |
🔐 特别准备 | 无 | 需要先配置 SSH Key(只做一次)ssh-keygen → 添加到 GitHub |
🧪 测试远程连通性 | 可选:git ls-remote origin | 必须测试 SSH:ssh -T git@github.com ,看到 Hi 用户名! 代表成功 |
🚧 注意事项对比
对比项 | Gitee(HTTPS) | GitHub(SSH) |
---|---|---|
是否易被墙 | 很少被墙 | HTTPS容易被墙,SSH更稳定 |
是否需要代理 | 不需要 | HTTPS需代理/VPN,SSH基本能通 |
是否需设置SSH Key | 不需要 | 需要一次性配置 SSH Key |
适合初学者程度 | 非常友好 | 初学者需跟教程操作,稍复杂但稳定 |
✨ありがとう、さようなら〜