好的,我們進入 第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課”進入下一節內容。