news 2026/5/1 6:01:07

从零开始:将本地代码推送到 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/4/30 13:28:21

Uber FX终极指南:Go依赖注入框架完整教程

Uber FX终极指南&#xff1a;Go依赖注入框架完整教程 【免费下载链接】fx A dependency injection based application framework for Go. 项目地址: https://gitcode.com/gh_mirrors/fx1/fx Uber FX是一款基于依赖注入的Go应用程序框架&#xff0c;专为构建可维护的微服…

作者头像 李华
网站建设 2026/5/1 4:48:18

Proteus下载(Linux + Wine):手把手入门必看教程

在 Linux 上运行 Proteus&#xff1f;用 Wine 打通电子仿真“任督二脉” 你是不是也遇到过这种情况&#xff1a;手头项目要用 Proteus 做个 8051 或 Arduino 的仿真&#xff0c;结果发现——这软件只有 Windows 版本。而你的主力开发环境是干净流畅的 Ubuntu&#xff0c;或者你…

作者头像 李华
网站建设 2026/5/1 5:47:26

VideoSubtitleGenerator:一键实现多语言字幕生成的智能工具

VideoSubtitleGenerator&#xff1a;一键实现多语言字幕生成的智能工具 【免费下载链接】VideoSubtitleGenerator 批量为本地视频生成字幕文件&#xff0c;并可将字幕文件翻译成其它语言&#xff0c; 跨平台支持 window, mac 系统 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2026/5/1 5:47:33

Mininet终极部署手册:3种高效安装方案全解析

Mininet终极部署手册&#xff1a;3种高效安装方案全解析 【免费下载链接】mininet Emulator for rapid prototyping of Software Defined Networks 项目地址: https://gitcode.com/gh_mirrors/mi/mininet Mininet安装是每个SDN学习者和开发者必须掌握的基础技能&#xf…

作者头像 李华
网站建设 2026/4/23 15:50:29

ms-swift框架下用户体验优化建议生成

ms-swift框架下用户体验优化建议生成 在大模型技术迅猛发展的今天&#xff0c;企业面临的不再是“有没有模型可用”&#xff0c;而是“如何让这些庞然大物真正跑得动、训得快、用得好”。从Llama到Qwen&#xff0c;从纯文本对话到图文音视频融合理解&#xff0c;模型种类日益繁…

作者头像 李华