上传本地文件(夹)代码到GitHub 超详细讲解最全命令集合(配图 适用全部)
下面我用最稳妥、最常用的方式,手把手教你把本地代码文件夹上传到 GitHub。不管你是第一次用 GitHub,还是之前总出错,按这个来基本不会翻车。
【注意】:https://github.com/beiyang366/LYVCSHOP 为作者的GitHub 仓库地址
一、准备工作(只需一次)
1️⃣ 注册 / 登录 GitHub
👉 https://github.com
登录即可(你应该已经有了)
2️⃣ 安装 Git(如果没装)
📥 下载地址(Windows / macOS / Linux):
👉 https://git-scm.com/
安装完成后,打开 命令行 / Git Bash,输入:
git --version
能看到版本号说明安装成功 ✅
二、在 GitHub 上创建一个仓库(Repo)

- 登录 GitHub
- 右上角 ➕ → New repository
- 填写信息:
- Repository name:仓库名(如
my-project) - 描述(可选)
- 选择 Public / Private
- ❗不要勾选
Add a README file(新手避免冲突)
- Repository name:仓库名(如
- 点击 Create repository
👉 创建完成后,你会看到一个页面,里面有类似这样的地址:
https://github.com/你的用户名/仓库名.git
【比如】:作者的GitHub 地址为:https://github.com/beiyang366/LYVCSHOP
这个等下要用 ❗
三、把「本地文件夹」上传到 GitHub(核心步骤)
方式一(⭐强烈推荐):命令行方式(最专业、最稳定)
📁 假设你的本地项目在:
D:\projects\my-project
1️⃣ 进入项目目录
cd D:\projects\my-project
2️⃣ 初始化 Git 仓库
git init
成功后会生成一个 .git 文件夹(隐藏)
3️⃣ 添加所有文件
git add .
. 表示当前目录下所有文件4️⃣ 提交代码
git commit -m "first commit"
5️⃣ 绑定远程 GitHub 仓库
把下面地址换成你自己的:
git remote add origin https://github.com/你的用户名/仓库名.git
6️⃣ 推送到 GitHub(关键一步)
git branch -M main
git push -u origin main
💡 如果第一次推送:
- 会弹出 GitHub 登录窗口
- 或要求你输入 Token(不是密码)
✅ 完成!
刷新 GitHub 页面,你的本地文件已经全部在仓库里了 🎉
四、常见问题(新手必看)
❓1. 推送时报错 failed to push some refs
原因:GitHub 仓库里有文件,本地没有
解决:
git pull origin main --allow-unrelated-histories
git push origin main
❓2. GitHub 不让用密码了怎么办?
GitHub 已禁用账号密码,需要用 Token
🔐 Token 获取地址:
👉 https://github.com/settings/tokens
步骤:
- Generate new token (classic)
- 勾选
repo 接着点击最下面的生成即可 - 复制生成的 token
- 推送时:
- 用户名:GitHub 用户名
- 密码:粘贴 Token
❓3. 不想上传某些文件(如 node_modules)
在项目根目录新建:
.gitignore
内容示例:
node_modules/
dist/
.idea/
*.log
然后重新提交:
git add .
git commit -m "add gitignore"
git push
五、图形化方式(不敲命令)
如果你不想用命令行,也可以:
✅ GitHub Desktop(新手友好)
流程:
- 登录 GitHub
- Add → Add Local Repository
- Publish Repository
(但我依然建议你掌握命令行)

这个不是错误,是“已经做过了”的状态 👍
我帮你逐行解释一下你现在到底处在什么阶段,以及下一步该怎么做。
一、你现在的真实状态(重点)
① Reinitialized existing Git repository
Reinitialized existing Git repository in D:/HB/LYVCSHOP/.git/
👉 说明:
- 这个项目 早就已经是一个 Git 仓库
.git目录已经存在- 你不是第一次
git init
✅ 这是正常的,不是问题
② nothing to commit, working tree clean
On branch main
nothing to commit, working tree clean
👉 说明 非常关键:
- 当前目录下的代码
- 已经全部提交过了
- Git 认为:没有任何变化
所以:
❌ 再怎么 git add .
❌ 再怎么 git commit
都会是这个结果
③ remote origin already exists
error: remote origin already exists.
👉 说明:
- 你的本地仓库 已经绑定过 GitHub 仓库
origin这个远程地址已经存在
也就是说:
你现在本地 Git = 已初始化 + 已提交 + 已绑定 GitHub
二、你现在只差「最后一步」
👉 推送到 GitHub
你现在最可能只是 还没 push,或者 push 过但你没注意。
✅ 直接执行这一句(最重要)
git push -u origin main
三、如果 push 成功,会看到什么?
你会看到类似输出:
Enumerating objects...
Counting objects...
Writing objects...
Branch 'main' set up to track remote branch 'main' from 'origin'.
然后:
👉 打开这个地址:
https://github.com/beiyang366/LYVCSHOP
代码就已经在 GitHub 上了
四、如果 push 时报错,按情况处理
情况 1:GitHub 要求登录 / Token
GitHub 已经不能用密码了,需要 Token
Token 获取地址:
👉 https://github.com/settings/tokens
步骤:
- Generate new token (classic)
- 勾选:
repo - 生成后 复制 token
- 推送时:
- 用户名:
beiyang366(这个是作者自己的) - 密码:粘贴 Token
- 用户名:
情况 2:提示远程分支有内容(冲突)
如果你之前在 GitHub 上点过 README:
git pull origin main --allow-unrelated-histories
git push origin main

这个报错非常经典,而且我可以明确告诉你:不是你权限不够,也不是仓库不存在。
👉 问题 100% 出在:你现在在用 SSH 方式,但你本机没有配置 SSH key。
我给你直接给结论 + 最快解决方案。
一、为什么会出现这个错误(你要知道本质)
报错信息是:
[email protected]: Permission denied (publickey).
这句话的真实含义是:
- Git 正在用 SSH 协议
- GitHub 要求你提供 SSH 公钥
- ❌ 但你本机 没有配置 SSH Key
- 所以 GitHub 拒绝了你
⚠️ 注意:
虽然你当时 remote add origin 看起来是 https,但你当前 Git 实际用的是 SSH 方式
二、最快、最稳的解决方案(强烈推荐)
✅ 方案 A(新手首选):改用 HTTPS + Token(5 分钟解决)
👉 不用配置 SSH,不折腾密钥,最省事
① 查看你现在的远程仓库地址(你可以顺便验证)
git remote -v
如果你看到的是类似:
origin [email protected]:beiyang366/LYVCSHOP.git (fetch) origin [email protected]:beiyang366/LYVCSHOP.git (push)
👉 那就说明你现在 确实在用 SSH
② 删除当前的 origin
git remote remove origin
③ 重新添加为 HTTPS(关键一步)
git remote add origin https://github.com/beiyang366/LYVCSHOP.git
④ 再次 push(这一步一定能走通)
git push -u origin main
这时会提示你输入:
Username: beiyang366 Password:
⚠️ 注意:Password 不是 GitHub 登录密码
而是 👉 GitHub Token
⑤ 获取 GitHub Token(必须)
打开:
👉 https://github.com/settings/tokens
步骤:
- 点击 Generate new token (classic)
- 勾选:
- ✅
repo
- ✅
- Generate
- 复制生成的 token(只显示一次)
📌 回到命令行:
- Username:
beiyang366 - Password:粘贴 Token
✅ 成功标志
你会看到类似:
Writing objects: 100% Branch 'main' set up to track remote branch 'main' from 'origin'.
然后刷新 GitHub 页面,代码已经全部上传 🎉
三、方案 B(进阶):配置 SSH(以后免输密码)
如果你以后会频繁用 GitHub,可以再搞 SSH。
大致流程(我先不让你现在搞):
ssh-keygen -t ed25519 -C "[email protected]"
然后把公钥加到 GitHub → SSH Keys。
👉 但你现在 完全没必要折腾这个
四、你现在应该怎么做(一步不多一步不少)
👉 只做这 4 步:
git remote remove origin git remote add origin https://github.com/beiyang366/LYVCSHOP.git git push -u origin main
然后 用 Token 登录

出现报错:
D:\HB\LYVCSHOP>git remote -v
origin [email protected]:LYVCSHOP.git (fetch)
origin [email protected]:LYVCSHOP.git (push)
D:\HB\LYVCSHOP>git remote remove origin
D:\HB\LYVCSHOP>git remote add origin https://github.com/beiyang366/LYVCSHOP.git
D:\HB\LYVCSHOP>git push -u origin main
fatal: unable to access 'https://github.com/beiyang366/LYVCSHOP.git/': Recv failure: Connection was reset
这一步你已经做对了 95%,现在这个报错不再是 Git 用法问题,而是一个典型的 Windows + 网络层问题。我直接给你结论 + 可执行方案。
一、先给结论(你现在卡在什么地方)
你的报错是:
fatal: unable to access 'https://github.com/beiyang366/LYVCSHOP.git/': Recv failure: Connection was reset
✅ 这说明什么?
- ❌ 不是仓库不存在
- ❌ 不是权限问题
- ❌ 不是 Token 问题
- ✅ 是 HTTPS 连接在传输过程中被“中断/重置”
👉 在 Windows 上,这通常是下面几种原因之一:
- 系统 / 网络 TLS/SSL 组件异常
- 公司 / 校园网 / 代理 / 加速器干扰
- Git 默认的 SSL 后端(OpenSSL)不稳定
- 本机开过 VPN / 代理,Git 没走对通道
二、【最稳 90% 能解决】方案一:切换 Git 的 SSL 后端(强烈推荐)
👉 这是 Windows 上 GitHub HTTPS 最常见的解法
🔧 执行下面这条命令(只需一次)
git config --global http.sslBackend schannel
解释一句你能懂的:
👉 让 Git 使用 Windows 自带的证书系统,而不是 Git 自己的 OpenSSL
👉 对国内 / 校园网 / 公司网 非常友好
然后立刻再试一次 push:
git push -u origin main
📌 大概率这里就能成功
三、如果还不行 → 方案二:关闭 HTTP/2(备用杀手锏)
有些网络对 HTTP/2 不友好:
git config --global http.version HTTP/1.1
git push -u origin main
四、如果你开过 VPN / 代理(⚠️ 很关键)
1️⃣ 检查 Git 有没有走代理
git config --global --get http.proxy git config --global --get https.proxy
如果有输出(比如 127.0.0.1:7890):
👉 先清掉:
git config --global --unset http.proxy git config --global --unset https.proxy
然后再 push:
git push -u origin main
五、终极兜底方案(100% 可用):改回 SSH + 配一次 key
如果你这台电脑以后要长期写代码,其实 SSH 才是最稳的(一次配置,永久免登录)。
如果你愿意,我可以一步一步带你生成 SSH key(3 分钟),保证成功。
六、你现在按这个顺序做(别跳)
👉 顺序执行(照抄)
git config --global http.sslBackend schannel
git push -u origin main
如果失败,再执行:
git config --global http.version HTTP/1.1
git push -u origin main
如果报错:D:\HB\LYVCSHOP>git config --global http.sslBackend schannel D:\HB\LYVCSHOP>git push -u origin main fatal: unable to access 'https://github.com/beiyang366/LYVCSHOP.git/': Failed to connect to github.com port 443 after 21117 ms: Couldn't connect to server
现在 100% 不是 Git、不是你操作、不是 GitHub 权限问题
而是:你当前这台电脑 → GitHub 的 443 端口“物理连不上”
也就是说:
👉 网络层被拦了 / 走不通
下面我给你最靠谱的判断 + 三条必能走通的路。
一、你现在这个报错的真实含义(一定要看)、
Failed to connect to github.com port 443 Couldn't connect to server
这代表:
- Git 已经:
- ✔ 用 HTTPS
- ✔ 用 Windows 证书
- 但:
- ❌ 连 github.com 的 443 端口都连不上
这通常只可能是下面 4 种情况之一:
| 原因 | 说明 |
|---|---|
| 校园网 / 公司网 | 屏蔽 GitHub(非常常见) |
| 代理 / VPN 没生效 | 浏览器能上,Git 走不了 |
| 防火墙 / 安全软件 | 拦截 Git 的 https |
| DNS / 网络环境异常 | github.com 无法解析或访问 |
⚠️ 注意一个重点
👉 浏览器能打开 GitHub ≠ Git 能连上 GitHub
(Git 走的是系统网络 + TLS)
二、最快验证:你的网络到底能不能直连 GitHub(30 秒)
① 在 CMD 里测试(不是 Git Bash)
ping github.com
如果出现:
- ❌ 超时
- ❌ 请求找不到主机
👉 说明网络被拦
② 再测试 HTTPS 端口(更关键)
curl https://github.com
如果:
- 连不上 / 卡死 / 报错
👉 那 Git 一定也连不上
三、【最稳方案 A】你有 VPN / 代理吗?(90% 学校用户)
⚠️ 非常重要的一点
浏览器翻墙 ≠ Git 自动翻墙
Git 默认 不走系统代理
✅ 如果你正在用 Clash / V2Ray / 代理软件(这里如果没有VPN的同学可以联系我(要做好备注)我来提供超纯净超稳定的VPN)
1️⃣ 看代理端口(一般是)
127.0.0.1:7890 或 127.0.0.1:10809
2️⃣ 让 Git 走代理(立刻生效)
git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy http://127.0.0.1:7890
(端口按你自己的改)
3️⃣ 再 push
git push -u origin main
👉 这一步在校园网几乎必成功

四、【最稳方案 B】直接走 SSH(但也要网络能通)
如果你 VPN 一开 GitHub 就能访问,那 SSH 会非常稳。
是否要我现在带你一步步做?
流程是:
- 生成 SSH key
- 加到 GitHub
- 测试
ssh -T [email protected] - push
👉 3 分钟,永久免登录
你只要回我一句:
「我有 VPN,用 SSH」
五、【100% 兜底方案 C】GitHub Desktop(不走 Git CLI 网络)
如果你现在必须马上交项目 / 不想折腾网络
👉 用 GitHub Desktop
它:
- 自动处理网络
- 自动登录
- 不受 Git CLI TLS 影响
下载:
👉 https://desktop.github.com/
步骤(极简):
- 登录 GitHub
- Add Local Repository
- Publish repository
⚠️ 这是我见过“网络最不容易翻车”的方式
六、我给你的明确行动建议(按成功率排序)
🥇 第一优先(成功率最高)
给 Git 配代理
git config --global http.proxy http://127.0.0.1:你的端口 git config --global https.proxy http://127.0.0.1:你的端口 git push -u origin main
🥈 第二优先
用 GitHub Desktop 一键发布
🥉 第三优先
SSH + VPN