好的,我们进入 第2课:版本查看与回退机制,本课你将学会如何查看提交历史、对比更改,并掌握多种回退版本的方法。
📘 第2课:查看历史与版本回退
🎯 本课目标
熟练查看 Git 提交记录
掌握差异查看、版本切换与回退
理解
checkout
、reset
、revert
的区别与用法
🗂 一、查看提交历史
1. 查看完整日志
git log
常见快捷选项:
git log --oneline # 每条提交一行,简洁模式
git log --graph # 图形化显示分支合并结构
git log --stat # 显示每次提交修改了哪些文件和行数
2. 查看指定文件的修改历史
git log 文件名
🔍 二、查看文件修改内容(差异对比)
1. 查看尚未提交的变动
git diff
显示工作区 vs 暂存区 的差异(未 add 的内容)
2. 查看已 add
但未 commit 的差异
git diff --cached
3. 比较历史版本之间的差异
git diff 哈希1 哈希2
示例:
git diff HEAD~1 HEAD
🕹 三、版本回退的三种方式
Git 提供了三种常用的回退机制:
方法 | 命令 | 场景 | 是否修改历史 |
---|---|---|---|
1. checkout | 切换到指定版本 | 临时查看旧版本、不修改历史 | 否 |
2. reset | 回退到旧版本(彻底更改历史) | 撤销提交、彻底还原 | 是(危险) |
3. revert | 撤销某次提交 | 保留历史,生成一条新提交 | 否(安全) |
🧪 示例操作
1. 查看历史提交哈希值
git log --oneline
输出示例:
e9b1fc0 添加登录功能
5d7c1f2 初始化项目
2. 使用 git checkout
查看旧版本(只读)
git checkout e9b1fc0
🔸 注意:此时进入了“游离 HEAD 状态”,不要直接在上面开发。
返回最新版本:
git checkout main
3. 使用 git reset
回退版本(危险操作)
回退到上一个版本(保留改动但不提交):
git reset --soft HEAD~1
回退到上一个版本(不保留改动):
git reset --hard HEAD~1
🚨慎用 --hard
,会删除工作区改动!
4. 使用 git revert
撤销某次提交(推荐)
git revert e9b1fc0
🔸 会创建一条“反向操作”的新提交,安全可追踪。
🔧 误删文件怎么找回?
如果误删了还没提交的文件,可用如下命令恢复:
git checkout -- 被删文件路径
📌 本课命令小结
命令 | 作用 |
---|---|
git log | 查看提交历史 |
git diff | 查看差异 |
git checkout <版本号> | 切换历史版本 |
git reset --hard HEAD~1 | 强制回退版本 |
git revert <版本号> | 创建反操作的提交 |
✅ 练习任务
提交多个更改,练习使用
git log
、git diff
用
reset
和revert
分别回退一次提交练习恢复误删文件
如果你准备好了,我们继续进入 第3课:分支管理基础与合并操作。
请回复“继续第3课”进入下一节内容。