Re:Linux系统篇(十):从零上手 Git + GitHub(Ubuntu 环境实操完整版|个人代码归档必备)

在这里插入图片描述

观众老爷们大家好 这里是邪修KING的独家频道
本文属于系列Linux系统篇 ——操作指令
一起学Linux的小伙伴可订阅专栏: Linux系统篇

文章简介

适合人群:Linux / C 语言初学者、在校学生,想要把课堂代码备份托管到 GitHub,全程基于 Ubuntu 虚拟机实操,避开 90% 新手踩坑。
本文覆盖:SSH 密钥配置、Git 三板斧完整流程、命令详解、常见报错排查、日常规范。单人练手、课程作业存档掌握本文内容完全够用。
环境:Ubuntu 22.04 / Xshell 远程连接
仓库用途:个人学习代码备份、课堂代码归档

一、基础概念理解

1. Git 和 GitHub 的区别

  1. Git:本地版本控制工具,安装在你的 Ubuntu 虚拟机里,用来记录代码每一次改动、保存历史快照。
  2. GitHub:远程代码托管网站(服务器),用来存放本地上传的代码,云端备份、随时查看、分享代码。

类比:Git = 电脑上的存档软件;GitHub = 云端网盘。

2. 核心流程原理(必须理解)

Git 分为三个工作区域:

  1. 工作区:你写代码的文件夹(lesson4/main.c 这些文件)
  2. 暂存区git add 之后,文件放到这里,准备打包存档
  3. 本地版本库git commit 之后,生成一份永久版本快照,存在本地 .git 隐藏文件夹
  4. 远程仓库(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 添加公钥(新手高频踩坑点)

  1. 不要进入单个仓库的 Settings!点击右上角头像 → Settings(账号全局设置)
  2. 左侧菜单找到 SSH and GPG keys
  3. 点击 New SSH key
    • Title:自定义(Ubuntu 虚拟机,用来区分设备)
    • Key:粘贴刚刚复制的完整公钥
  4. 保存,验证账号密码。

4. 测试连通是否成功

ssh -T git@github.com

出现提示:Hi 你的用户名! You've successfully authenticatedSSH 配置成功

三、Git 三板斧|日常 90% 场景只用这三条命令

⚠️ 适用场景:单人开发、课堂代码归档、自己练习项目(不涉及多人协作)

# 1. git add:将修改/新增文件加入【暂存区】
git add 文件夹名/文件名
# 当前目录全部文件提交
git add .

# 2. git commit:打包生成本地版本快照,-m 后面填写本次修改备注
git commit -m "备注:描述本次新增/修改了什么内容"

# 3. git push:将本地版本上传推送到 GitHub 远程仓库
git push

命令详细解读

  1. git add
    • git add lesson4/:只上传 lesson4 整个文件夹
    • git add .:提交当前目录下所有未跟踪、修改过的文件
    • ❗ 不能省略:不执行 add,commit 识别不到新增文件(新手最高频报错)
  2. git commit -m “备注文字”
    • -m = message,提交日志备注,仅用于记录说明,不影响文件上传
    • 规范:备注尽量简洁清晰,例如 新增lesson4 IO练习代码,方便后续查看历史
    • 作用:生成一份不可丢失的版本快照,可以随时回看、回退
  3. 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

  1. 进入项目根目录
cd ~/113
  1. 添加文件夹到暂存区
git add lesson4/ lesson5/ lesson6/
  1. 本地生成版本快照
git commit -m "上传lesson4 lesson5 lesson6 Linux课堂练习代码"
  1. 推送到远程仓库(首次绑定上游)
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,没有新内容可以推送,属于正常提示,不是报错

七、使用边界说明:三板斧什么时候不够用?

  1. 够用(你现阶段):个人作业、自学练手、代码备份,单人独立开发,不需要合并别人代码
  2. 不够用(未来企业开发):多人协作、分支开发、代码冲突、版本回退、撤销提交

进阶命令:git branch、git checkout、git reset、git merge,工作后再学习即可,现阶段不用额外记忆,避免混淆。

八、个人代码归档最佳实践(规范建议)

  1. 每次提交备注写清楚改动内容,不要写无意义备注(aaa、test)
  2. 区分提交粒度:新增一课代码单独提交,大规模修改分开提交
  3. 经常使用 git status 查看文件状态,避免误传无关文件
  4. 重要代码定期 push 到 GitHub,防止虚拟机文件丢失

九、总结

对于在校学生、自学编程用来备份课堂代码:掌握 Git 三板斧(add /commit/push)+ git status 查看状态,配合 SSH 免密配置,完全满足长期使用需求。
Git 的核心逻辑牢记:先暂存、再本地存档、最后云端推送,顺序不乱就能避开绝大多数新手问题。
当后续参与团队项目开发,再拓展分支、冲突处理等高级 Git 功能。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值