news 2026/3/27 6:21:39

从零开始:将本地代码推送到 GitHub 的完整流程与避坑指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零开始:将本地代码推送到 GitHub 的完整流程与避坑指南

最近在整理自己的项目时,想把本地的一个 Vue CLI 项目推送到 GitHub 上进行版本管理。本以为是个简单操作,结果一路踩了几个典型的“新手坑”。今天就来记录一下整个过程,希望能帮到和我一样刚接触 Git 和 GitHub 的朋友。

第一步:常规提交却报错 —— 没有配置远程仓库

我一开始的操作非常“朴素”:

gitadd.gitcommit -m'init project'gitpush

结果控制台直接报错:

fatal: No configured push destination. Either specify the URL from the command-line or configure a remote repository using git remote add <name> <url> and then push using the remote name git push <name>

原因分析
这个错误的意思是——Git 不知道你要把代码推送到哪里。因为你还没有为本地仓库配置任何远程仓库地址(remote)。这就像你想寄快递,但没填收件地址一样。

解决方法
需要先在 GitHub 上新建一个空仓库(注意不要勾选 “Initialize this repository with a README”,否则后续可能需要处理冲突),然后在本地执行:

gitremoteaddorigin https://github.com/xuehao1997/vue-cli.git

验证是否添加成功:

gitremote -v

输出如下说明配置成功:

origin https://github.com/xuehao1997/vue-cli.git (fetch) origin https://github.com/xuehao1997/vue-cli.git (push)

看起来一切正常,于是继续推送:

gitpush -u origin master

第二步:认证失败 —— GitHub 已禁用密码登录

然而,又报错了:

remote: Invalid username or token. Password authentication is not supported for Git operations. fatal: Authentication failed for 'https://github.com/xuehao1997/vue-cli.git/'

原因分析
2021 年 8 月起,GitHub 正式停止支持使用账号密码进行 Git 操作的认证方式。这意味着即使你输入正确的用户名和密码,也会被拒绝。现在必须使用以下两种方式之一:

  • Personal Access Token (PAT)(基于 HTTPS)
  • SSH 密钥(基于 SSH 协议,更安全且无需每次输入凭证)

我决定采用更推荐的SSH 方式

第三步:配置 SSH 密钥

1. 生成 SSH 密钥

在终端执行:

ssh-keygen -t rsa -b4096-C"743195023@qq.com"

按回车使用默认路径(~/.ssh/id_rsa),也可以设置密码(passphrase)增强安全性(可选)。

2. 查看公钥内容

cat~/.ssh/id_rsa.pub

你会看到类似这样的字符串:

ssh-rsa AAAAB3NzaC1yc2E... 743195023@qq.com

3. 将公钥添加到 GitHub

  • 打开 GitHub Settings
  • 进入SSH and GPG keys
  • 点击New SSH key
  • Title 随便填(比如 “My MacBook”)
  • id_rsa.pub的全部内容粘贴进去,点击Add SSH key

4. 测试 SSH 连接

ssh-T git@github.com

如果看到:

Hi xuehao1997! You've successfully authenticated, but GitHub does not provide shell access.

恭喜!SSH 认证成功 ✅

第四步:推送代码(关键细节)

到这里,很多人会以为要先把远程地址从 HTTPS 改成 SSH:

gitremote set-url origin git@github.com:xuehao1997/vue-cli.git

但我发现:即使没改,也能推送成功!这让我有点困惑。

后来才明白:其实是因为我之前没真正尝试过 HTTPS 推送(因为认证失败了),而 SSH 配置好后,Git 在后台自动优先使用了 SSH 协议?
不过为了规范和避免未来混淆,强烈建议显式将远程地址改为 SSH 格式

gitremote set-url origin git@github.com:xuehao1997/vue-cli.git

再检查一下:

gitremote -v# 应该显示:# origin git@github.com:xuehao1997/vue-cli.git (fetch)# origin git@github.com:xuehao1997/vue-cli.git (push)

最终推送

gitpush -u origin master

✅ 成功!代码顺利上传到 GitHub。


总结:踩坑清单 & 最佳实践

问题原因解决方案
No configured push destination未设置远程仓库git remote add origin <url>
Password authentication is not supportedGitHub 禁用密码认证改用 SSH 或 PAT
推送失败/认证失败未配置 SSH 或 Token生成 SSH 密钥并添加到 GitHub
地址混乱混用 HTTPS 和 SSH统一使用 SSH 地址

建议

  • 新项目一律使用SSH 方式管理远程仓库,一劳永逸。
  • 定期备份 SSH 私钥(id_rsa文件),但切勿泄露
  • 如果团队协作,确保每个成员都配置好自己的 SSH。

希望这篇记录能帮你少走弯路。Git 虽然强大,但初学者很容易在“连接远程仓库”这一步卡住。只要理解背后的原理(认证机制 + 远程地址配置),就能从容应对。

🌟小贴士:如果你还在用master分支,注意 GitHub 默认分支现在是main。可以考虑统一使用main避免未来兼容问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/26 14:19:19

graphql-go 高级技巧:自定义标量类型实战指南

graphql-go 高级技巧&#xff1a;自定义标量类型实战指南 【免费下载链接】graphql-go GraphQL server with a focus on ease of use 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-go 问题分析&#xff1a;为什么需要自定义标量类型&#xff1f; 在实际的 Gra…

作者头像 李华
网站建设 2026/3/21 22:16:17

Dockerize实战指南:8个高效配置技巧与性能优化完整教程

Dockerize实战指南&#xff1a;8个高效配置技巧与性能优化完整教程 【免费下载链接】dockerize Utility to simplify running applications in docker containers 项目地址: https://gitcode.com/gh_mirrors/do/dockerize Dockerize是一个强大的容器化工具&#xff0c;专…

作者头像 李华
网站建设 2026/3/27 6:02:45

ms-swift框架下模型压缩与加速一体化解决方案

ms-swift框架下模型压缩与加速一体化解决方案 在当前大模型技术飞速演进的背景下&#xff0c;一个现实问题日益凸显&#xff1a;参数量动辄数十亿甚至上千亿的模型&#xff0c;虽然能力强大&#xff0c;但在实际落地时却常常“跑不动”——显存爆了、推理慢如蜗牛、训练成本高得…

作者头像 李华
网站建设 2026/3/26 22:41:29

OpenWrt第三方WiFi驱动编译终极指南:从零到精通

OpenWrt第三方WiFi驱动编译终极指南&#xff1a;从零到精通 【免费下载链接】OpenWrt_x86-r2s-r4s-r5s-N1 一分钟在线定制编译 X86/64, NanoPi R2S R4S R5S R6S, 斐讯 Phicomm N1 K2P, 树莓派 Raspberry Pi, 香橙派 Orange Pi, 红米AX6, 小米AX3600, 小米AX9000, 红米AX6S 小米…

作者头像 李华
网站建设 2026/3/26 20:58:36

终极指南:如何使用Pcileech-DMA-NVMe-VMD实现免费VMD固件替代方案

终极指南&#xff1a;如何使用Pcileech-DMA-NVMe-VMD实现免费VMD固件替代方案 【免费下载链接】Pcileech-DMA-NAMe-VMD Firmware emulation to implement NVMe-VMD functionality 项目地址: https://gitcode.com/gh_mirrors/pc/Pcileech-DMA-NAMe-VMD 还在为昂贵的VMD固…

作者头像 李华
网站建设 2026/3/26 22:46:44

Goldberg Steam Emulator 终极使用指南:5分钟快速上手局域网游戏

Goldberg Steam Emulator 终极使用指南&#xff1a;5分钟快速上手局域网游戏 【免费下载链接】gbe_fork Fork of https://gitlab.com/Mr_Goldberg/goldberg_emulator 项目地址: https://gitcode.com/gh_mirrors/gbe/gbe_fork Goldberg Steam Emulator&#xff08;简称GB…

作者头像 李华