
文章简介
适合人群:Linux / C 语言初学者、在校学生,想要把课堂代码备份托管到 GitHub,全程基于 Ubuntu 虚拟机实操,避开 90% 新手踩坑。
本文覆盖:SSH 密钥配置、Git 三板斧完整流程、命令详解、常见报错排查、日常规范。单人练手、课程作业存档掌握本文内容完全够用。
环境:Ubuntu 22.04 / Xshell 远程连接
仓库用途:个人学习代码备份、课堂代码归档
一、基础概念理解
1. Git 和 GitHub 的区别
- Git:本地版本控制工具,安装在你的 Ubuntu 虚拟机里,用来记录代码每一次改动、保存历史快照。
- GitHub:远程代码托管网站(服务器),用来存放本地上传的代码,云端备份、随时查看、分享代码。
类比:Git = 电脑上的存档软件;GitHub = 云端网盘。
2. 核心流程原理(必须理解)
Git 分为三个工作区域:
- 工作区:你写代码的文件夹(
lesson4/、main.c这些文件) - 暂存区:
git add之后,文件放到这里,准备打包存档 - 本地版本库:
git commit之后,生成一份永久版本快照,存在本地.git隐藏文件夹 - 远程仓库(GitHub):
git push将本地版本上传到云端
✅ 固定顺序:工作区 → git add(暂存) → git commit(本地存档) → git push(上传云端)
网上所说 Git「三板斧」就是这三步,单人代码归档核心命令。
二、前置准备:Ubuntu 配置 SSH 免密推送(重点避坑)
如果不配置 SSH,每次上传代码需要输入账号密码;配置 SSH 密钥后,后续
git push免密操作。
1. 生成 ed25519 密钥(Ubuntu 终端执行)
ssh-keygen -t ed25519 -C "你的邮箱"
执行后一路回车,不需要设置密码。
2. 查看公钥(复制完整内容)
cat ~/.ssh/id_ed25519.pub
输出的完整一整串(开头 ssh-ed25519,结尾是你的邮箱)全部复制。
3. GitHub 添加公钥(新手高频踩坑点)
- 不要进入单个仓库的 Settings!点击右上角头像 →
Settings(账号全局设置) - 左侧菜单找到
SSH and GPG keys - 点击
New SSH key- Title:自定义(Ubuntu 虚拟机,用来区分设备)
- Key:粘贴刚刚复制的完整公钥
- 保存,验证账号密码。
4. 测试连通是否成功
ssh -T git@github.com
出现提示:Hi 你的用户名! You've successfully authenticated → SSH 配置成功
三、Git 三板斧|日常 90% 场景只用这三条命令
⚠️ 适用场景:单人开发、课堂代码归档、自己练习项目(不涉及多人协作)
# 1. git add:将修改/新增文件加入【暂存区】
git add 文件夹名/文件名
# 当前目录全部文件提交
git add .
# 2. git commit:打包生成本地版本快照,-m 后面填写本次修改备注
git commit -m "备注:描述本次新增/修改了什么内容"
# 3. git push:将本地版本上传推送到 GitHub 远程仓库
git push
命令详细解读
- git add
git add lesson4/:只上传 lesson4 整个文件夹git add .:提交当前目录下所有未跟踪、修改过的文件- ❗ 不能省略:不执行 add,commit 识别不到新增文件(新手最高频报错)
- git commit -m “备注文字”
-m= message,提交日志备注,仅用于记录说明,不影响文件上传- 规范:备注尽量简洁清晰,例如
新增lesson4 IO练习代码,方便后续查看历史 - 作用:生成一份不可丢失的版本快照,可以随时回看、回退
- git push
- 第一次推送分支时,需要绑定上下游:
git push -u origin main
-u = --set-upstream:绑定本地 main 分支 和 GitHub 远程 main 分支,仅第一次需要- 绑定完成后,后续推送直接使用
git push
四、配套辅助命令(推荐熟记,日常高频使用)
# 查看当前文件状态:哪些文件修改、未add、未提交
git status
# 查看全部提交历史日志,查看每一次commit备注
git log
# 拉取远程GitHub最新代码到本地(网页端手动改代码后使用)
git pull
## 五、完整实操案例(本次课堂实操全过程)
需求:将 Ubuntu 中 lesson4 lesson5 lesson6 文件夹上传 GitHub
- 进入项目根目录
cd ~/113
- 添加文件夹到暂存区
git add lesson4/ lesson5/ lesson6/
- 本地生成版本快照
git commit -m "上传lesson4 lesson5 lesson6 Linux课堂练习代码"
- 推送到远程仓库(首次绑定上游)
git push -u origin main
推送完成后,刷新 GitHub 仓库网页,即可看到上传的文件夹与源码。
后续迭代示例(修改 lesson4 内部代码,更新到 GitHub)
git add lesson4/
git commit -m "修复lesson4 Makefile编译警告"
git push
六、新手高频报错 & 解决方案(本次实操踩坑汇总)
报错 1:nothing added to commit but untracked files present
✅ 原因:缺少 git add,新增文件没有加入暂存区,直接执行 commit
✅ 解决:先执行 git add 目标文件/文件夹
报错 2:The current branch main has no upstream branch
✅ 原因:本地 main 分支未绑定 GitHub 远程分支,首次推送缺少 -u
✅ 解决:执行 git push -u origin main
报错 3:git@github.com: Permission denied (publickey)
✅ 原因:SSH 公钥配置失败,公钥复制不全、粘贴到仓库局部设置而非账号全局 SSH
✅ 解决:重新复制完整公钥,到账号全局 SSH and GPG keys 添加,再执行连通测试
提示:Everything up-to-date
✅ 含义:本地所有改动都已经上传 GitHub,没有新内容可以推送,属于正常提示,不是报错
七、使用边界说明:三板斧什么时候不够用?
- ✅ 够用(你现阶段):个人作业、自学练手、代码备份,单人独立开发,不需要合并别人代码
- ❌ 不够用(未来企业开发):多人协作、分支开发、代码冲突、版本回退、撤销提交
进阶命令:git branch、git checkout、git reset、git merge,工作后再学习即可,现阶段不用额外记忆,避免混淆。
八、个人代码归档最佳实践(规范建议)
- 每次提交备注写清楚改动内容,不要写无意义备注(aaa、test)
- 区分提交粒度:新增一课代码单独提交,大规模修改分开提交
- 经常使用
git status查看文件状态,避免误传无关文件 - 重要代码定期 push 到 GitHub,防止虚拟机文件丢失
九、总结
对于在校学生、自学编程用来备份课堂代码:掌握 Git 三板斧(add /commit/push)+ git status 查看状态,配合 SSH 免密配置,完全满足长期使用需求。
Git 的核心逻辑牢记:先暂存、再本地存档、最后云端推送,顺序不乱就能避开绝大多数新手问题。
当后续参与团队项目开发,再拓展分支、冲突处理等高级 Git 功能。
:从零上手 Git + GitHub(Ubuntu 环境实操完整版|个人代码归档必备)&spm=1001.2101.3001.5002&articleId=163915804&d=1&t=3&u=e3889cb3971443b38f43886ac40f4842)
316

被折叠的 条评论
为什么被折叠?



