VS Code 上传 GitHub 全流程(Windows 环境):HTTP 与 SSH 两种方案(含常见报错排查)

张开发
2026/4/14 14:02:23 15 分钟阅读

分享文章

VS Code 上传 GitHub 全流程(Windows 环境):HTTP 与 SSH 两种方案(含常见报错排查)
目录一、写在前面适用场景与环境二、一次性准备同一台电脑通常只做一次1) 安装并验证 Git2) 配置提交身份3) 生成 SSH 密钥SSH方法需要执行若已有可跳过4) 复制公钥并添加到 GitHub5) 测试 SSH 连接三、方案 AHTTP 上传流程上手快1) 新项目首次上传HTTP2) 日常更新上传HTTP四、方案 A 常见问题HTTP1) 报错git 无法识别为 cmdlet2) 报错[rejected] main - main (non-fast-forward)3) 报错Recv failure: Connection was reset五、方案 BSSH 上传流程更稳定推荐长期使用1) 一次性配置 SSH Key2) 把远程地址从 HTTP 改为 SSH3) 推送代码4) 指令总结六、方案 B 常见问题SSH1) 报错Set-Service ssh-agent ... 拒绝访问2) 报错密钥无效。必须提供 OpenSSH 公钥格式3) 报错remote origin already exists七、HTTP 与 SSH 如何选择八、可长期复用的最小命令模板一、写在前面适用场景与环境本文面向第一次接触 Git/GitHub 的初学者按“可直接照做”的方式整理。适用环境如下操作系统Windows终端VS Code 内置 PowerShell目标把本地工程持续上传到 GitHub本地工程目录示例C:\GitHub_Project\Workspace\TDDB_Controlcore49_V1.0远程仓库示例https://github.com/YW-LINK/TEST_1.git先理解一个核心概念本地上传 GitHub 本质是两件事本地用 Git 记录版本add/commit。把本地版本推送到远程仓库push。HTTP 和 SSH 的区别只在“本地如何连接 GitHub”。可以把 Git 理解为“本地版本管理器”把 GitHub 理解为“云端版本仓库”。本教程就是把两者打通并形成日常可复用流程。二、一次性准备同一台电脑通常只做一次1) 安装并验证 Gitgit --version若报错 git 无法识别说明 Git 未装好或 PATH 未生效。可先重启 VS Code仍失败则确认存在 C:\Program Files\Git\cmd\git.exe并将 C:\Program Files\Git\cmd 加入系统 Path。2) 配置提交身份git config --global user.name YW-LINK git config --global user.email wyw15952804625gmail.com这两项会写入每次提交的作者信息。3) 生成 SSH 密钥SSH方法需要执行若已有可跳过ssh-keygen -t ed25519 -C wyw15952804625gmail.com一路回车即可默认会生成私钥~/.ssh/id_ed25519只保存在本机不能泄露公钥~/.ssh/id_ed25519.pub可上传到 GitHub4) 复制公钥并添加到 GitHubSet-Clipboard -Value ((Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub -Raw).Trim())打开 GitHubSettings - SSH and GPG keys - New SSH key粘贴公钥保存。5) 测试 SSH 连接ssh -T gitgithub.com出现认证成功提示即通道已打通。三、方案 AHTTP 上传流程上手快1) 新项目首次上传HTTP在工程目录执行git init git remote add origin https://github.com/YW-LINK/TEST_1.git根据不同仓库修改 git add . git commit -m first commit git branch -M main git push -u origin main命令作用简述git init初始化本地仓库。git remote add origin ...绑定远程仓库地址。git add .把当前改动加入暂存区。git commit -m生成一次本地提交。git branch -M main统一主分支名。git push -u origin main首次推送并绑定上游分支。2) 日常更新上传HTTPgit add -A git commit -m feat: update git pull --rebase origin main git pushpull --rebase 可以显著减少推送冲突。四、方案 A 常见问题HTTP1) 报错git 无法识别为 cmdlet典型信息git : 无法将“git”项识别为 cmdlet...原因Git 未安装或 PATH 未生效。处理执行 git --version 检查。重启 VS Code。确认存在 C:\Program Files\Git\cmd\git.exe。将 C:\Program Files\Git\cmd 加入系统 Path。2) 报错[rejected] main - main (non-fast-forward)原因远程 main 比本地更新。处理git pull --rebase origin main git push3) 报错Recv failure: Connection was reset典型信息fatal: unable to access https://github.com/...: Recv failure: Connection was reset原因HTTPS 链路不稳定、网络波动或代理干扰。处理git config --global --unset http.proxy git config --global --unset https.proxy git pull --rebase origin main若仍不稳定建议切换 SSH 方案。五、方案 BSSH 上传流程更稳定推荐长期使用1) 一次性配置 SSH Keyssh-keygen -t ed25519 -C wyw15952804625gmail.com Set-Clipboard -Value ((Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub -Raw).Trim())然后在 GitHub 页面操作Settings - SSH and GPG keys - New SSH key粘贴公钥并保存。连接测试ssh -T gitgithub.com2) 把远程地址从 HTTP 改为 SSHgit remote set-url origin gitgithub.com:YW-LINK/TEST_1.git3) 推送代码先将仓库中的内容拉取到本地合并再提交仓库git pull --rebase origin main git push -u origin mainpull --rebase 是先把远程最新提交“接到你前面”能大幅减少推送冲突。首次 -u 绑定后后续可直接 git push。或者也可以强制用本地直接覆盖远程git push -u origin main --force这行指令是用本地直接覆盖远程会改写远程历史谨慎使用。4) 指令总结# 1. 确认 Git 可用 git --version # 2. 配置提交身份只需一次 git config --global user.name YW-LINK git config --global user.email wyw15952804625gmail.com # 3. 生成 SSH key若已有可跳过 ssh-keygen -t ed25519 -C wyw15952804625gmail.com # 4. 复制公钥到剪贴板粘贴到 GitHub - Settings - SSH and GPG keys Set-Clipboard -Value ((Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub -Raw).Trim()) # 5. 测试 SSH 是否打通 ssh -T gitgithub.com作用说明建立“长期免密码通道”。后续 push/pull 都会更稳定不用反复输账号口令git init git remote add origin gitgithub.com:YW-LINK/TEST_1.git根据不同仓库修改 git add . git commit -m first commit git branch -M main git push -u origin main作用说明git init初始化本地仓库。git remote add origin ...绑定远程仓库地址。git add .把当前改动加入暂存区。git commit -m生成一次本地提交。git branch -M main统一主分支名。git push -u origin main首次推送并绑定上游分支。六、方案 B 常见问题SSH1) 报错Set-Service ssh-agent ... 拒绝访问原因当前终端不是管理员权限无法修改系统服务。处理方式使用管理员 PowerShell 启动 ssh-agent。或跳过 ssh-agent直接使用私钥文件也可正常推送。2) 报错密钥无效。必须提供 OpenSSH 公钥格式原因公钥粘贴时被改动换行、空格、手动输入错误。处理不手敲始终从 id_ed25519.pub 原样复制整行。可先本地校验$pub (Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub -Raw).Trim() $pub -match ^ssh-ed25519 [A-Za-z0-9/](?: .*)?$返回 True 再提交到 GitHub。3) 报错remote origin already exists原因远程地址已经配置过。处理git remote set-url origin gitgithub.com:YW-LINK/TEST_1.git七、HTTP 与 SSH 如何选择临时使用、快速试跑HTTP 上手快。长期开发、频繁 push/pullSSH 更稳推荐作为默认方案。八、可长期复用的最小命令模板git add -A git commit -m chore: update git pull --rebase origin main git push这 4 条命令可覆盖绝大多数日常上传场景。若出现连接类错误优先检查网络与远程地址协议HTTP/SSH是否匹配当前配置。

更多文章