還原改動
你的安全網
⏱ 預估 ~8 分鐘
01 · 讀一讀
改錯了?git 可以還原一個檔案,把它回復到最後一個 commit 的版本。這就像安全網 — 只要你最近有 commit,你隨時可以回到那個好的狀態。
💡 想像一下把 git checkout -- 想成整個檔案的 Ctrl+Z。如果你不小心把一篇文章刪掉一半,你可以從你最後拍的那張照片(commit)把它救回來。重點是:你只能還原你之前有存過的東西。
重點整理
- git checkout -- filename 把一個檔案還原到最後一次 commit 的狀態
- 這會把那個檔案所有還沒 commit 的改動丟掉 — 是永遠丟掉
- 所以常 commit 很重要:commit 越多 = 還原點越多
02 · 終端機練習
先建一個 git repo,讓我們有安全網可以用。
(本節為互動練習,請啟用 JavaScript 體驗)
03 · 終端機練習
把檔案 stage 起來。
(本節為互動練習,請啟用 JavaScript 體驗)
04 · 終端機練習
Commit 這個可以動的版本。
(本節為互動練習,請啟用 JavaScript 體驗)
05 · 選擇題
為什麼常常 commit 是個好習慣?
- git 要求一小時至少 commit 一次
- commit 越多 = 出事的時候還原點越多
- 讓 repo 變小
- 用 git diff 之前一定要先 commit
06 · 終端機練習
糟糕!你不小心把整個檔案用垃圾覆蓋掉了。
(本節為互動練習,請啟用 JavaScript 體驗)
07 · 終端機練習
親眼看一下慘況。
(本節為互動練習,請啟用 JavaScript 體驗)
08 · 終端機練習
用 git checkout 把檔案還原到最後一個 commit 的版本。-- 告訴 git 你指的是一個檔案,不是一個分支。
(本節為互動練習,請啟用 JavaScript 體驗)
09 · 選擇題
你不小心把 app.js 裡很重要的程式碼刪掉,但還沒 commit。你跑 git checkout -- app.js 會發生什麼?
- 它會建一個叫 app.js 的新分支
- 它會把 app.js 永久刪掉
- 它把 app.js 還原到最後一個 commit 的版本
- 它顯示 app.js 改了什麼的 diff
⚠ 完整互動體驗需要 JavaScript。請啟用 JavaScript 後重新整理。
※ 本站為獨立繁中教學專案,非 Anthropic 官方產品。Claude™ 為 Anthropic, PBC 商標。