Git:給 AI 的安全網
讓 AI 動手改檔案之前,先學會「存檔」。這堂課裝好 Git,把專案變成有存檔紀錄的資料夾,學會看差異、丟掉改壞的修改,也學會請 Claude 幫你 commit,並認識 Claude Code 內建的檢查點與倒轉功能。
為什麼 AI 需要安全網
上一堂我們談了權限:讓你在 Claude 動手之前有機會說「等一下」。但總有漏網之魚:你按了同意,結果改完才發現不對;或是改了十幾個地方,你根本記不得原本長怎樣。
這時候你需要的是「動手之後也能反悔」的能力。這就是 Git。
Git 是一個版本控制工具。白話說:它會幫你的資料夾拍「快照」,每一張快照叫做一個 commit(提交,也可以想成存檔點)。之後不管改成什麼樣子,都能跟存檔點比較,或者回到存檔點。
只要有存檔點,改壞就不可怕。
步驟一:確認 Git 裝好了
在終端機輸入:
git --version
看到 git version 加一串數字,就代表裝好了。如果沒有:
- Windows:還記得第 2 堂建議安裝的 Git for Windows 嗎?如果當時跳過了,現在到 git-scm.com 下載安裝,一路用預設選項。裝完記得開一個新的終端機。
- macOS:輸入
git --version時,如果系統還沒有 Git,通常會跳出視窗問你要不要安裝「指令列開發者工具」,按「安裝」,等它跑完再試一次。
告訴 Git 你是誰
每個存檔點都會記錄是誰存的。第一次使用要設定一次名字和 Email(只會存在你的電腦裡,之後上傳到 GitHub 時才會公開):
git config --global user.name "你的名字"
git config --global user.email "you@example.com"
把引號裡的內容換成你自己的。英文名字或暱稱都可以。
步驟二:讓資料夾開始被記錄
回到我們一路練習的 my-first-claude 資料夾。你可以自己打指令,也可以請 Claude 幫忙。這次我們請 Claude 做,順便看它怎麼操作:
請幫我把這個資料夾設定成 Git 專案:
- 執行 git init。
- 建立 .gitignore,把 .env 和其他不該上傳的檔案排除。
- 把目前所有檔案做第一次 commit,說明用繁體中文寫「建立學習筆記專案」。
每一步執行前先告訴我那行指令的作用。
在 Manual 模式下,它每執行一個指令都會問你。這是很好的學習機會:看它下了什麼指令,對照它的說明。
步驟三:四個指令就夠用
自己在終端機(或 VS Code 下方的終端機)試一次這四個動作。先請 Claude 改點東西:
請在 README.md 最後加一段「我的學習目標」,列出三個目標:學會使用 Claude Code、做出一個待辦清單網頁、養成用 Git 存檔的習慣。
改完之後,先離開或另開一個終端機視窗(同樣 cd 到 my-first-claude),輸入:
git status
它會告訴你哪些檔案被改了。README.md 會被標示為 modified(已修改)。
git diff
它會顯示改了哪幾行:前面是 + 的是新增,- 的是刪除。按 q 離開這個畫面。
看起來沒問題,就存檔:
git add .
git commit -m "README 加上學習目標"
git add .:把所有修改放進「準備存檔」的區域(那個.代表目前資料夾的全部)。git commit -m "...":正式存檔,引號裡是這次存檔的說明。
最後看看你的存檔紀錄:
git log --oneline
你會看到兩行,每行是一個存檔點,前面一串英數字是它的編號。
步驟四:改壞了怎麼辦
這是整堂課最重要的部分。我們故意改壞一次:
這是練習:請把 README.md 的內容全部換成一行「我改壞了」。
同意它修改,打開 README.md 確認真的被改掉了。現在把它救回來:
git restore README.md
再打開 README.md,內容回到上一個存檔點的樣子了。如果改壞的檔案很多,可以一次全部還原:
git restore .
想回到更早的存檔點,情況會複雜一點。這時候讓 Claude 幫你,但要它先說清楚:
我想讓專案回到「建立學習筆記專案」那個 commit 的狀態。請先告訴我有哪幾種做法、各自會不會讓我失去任何東西,建議最安全的一種,等我同意再執行。
讓 Claude 幫你 commit
學會了原理,日常就可以交給 Claude。它會自己看 git diff,寫出清楚的說明:
請看一下我目前改了哪些檔案,幫我 commit。說明用繁體中文,一句話講清楚這次改了什麼。
你也可以把這個習慣寫進 CLAUDE.md(還記得第 3 堂嗎?):
請在 CLAUDE.md 的「與我合作的方式」加上一條:每完成一個我要求的段落後,提醒我是否要 commit;commit 說明用繁體中文。
Claude Code 內建的「後悔藥」:檢查點
除了 Git,Claude Code 自己也有一個安全機制:檢查點(checkpoint)。你每送出一則訊息,它就自動記下當時的檔案狀態。
在終端機版本裡打開倒轉選單:
- 輸入
/rewind,或 - 在輸入框是空的時候按兩下
Esc。
選單會列出你這次對話送出過的訊息。選一則,再選要做什麼:
| 選項 | 效果 |
|---|---|
| 還原程式碼和對話 | 檔案和對話都回到那則訊息之前 |
| 只還原對話 | 對話倒回去,檔案保持現在的樣子 |
| 只還原程式碼 | 檔案倒回去,對話保留 |
| 從這裡開始摘要 | 不改檔案,把之後的對話濃縮,騰出空間 |
| 算了 | 什麼都不做 |
在 VS Code 裡,把滑鼠移到某則訊息上,會出現倒轉按鈕,可以選擇把程式碼倒回那個時間點。
檢查點很方便,但不能取代 Git
官方文件把檢查點定位為「對話中的快速復原」,並明確說它不是版本控制的替代品。原因是:
- 只追蹤 Claude 用編輯工具改的檔案。如果某個檔案是被它執行的指令改掉或刪掉的(例如用指令搬移、刪除檔案),檢查點救不回來。
- 你自己手動改的、其他程式改的,通常也不在範圍內。
- 檢查點跟著對話走,舊的會被清掉;Git 的存檔點則會一直留著。
所以最穩的做法是兩張網一起用:Git 負責長久的存檔,檢查點負責「剛剛那一步不要了」。
- 確認
git --version有版本號,並設定好user.name和user.email。 - 請 Claude 在
my-first-claude執行git init、建立.gitignore,並做第一次 commit。 - 請 Claude 改 README,自己用
git status、git diff看改了什麼,再用git add .和git commit存檔。 - 故意請 Claude 把 README 改壞,用
git restore README.md救回來。 - 再改壞一次,這次改用
/rewind(或按兩下 Esc)選「只還原程式碼」救回來,比較兩種方法的感覺。 - 用
git log --oneline看看你今天留下了幾個存檔點。
讀完了嗎?
標記完成後,單元與專案的進度會自動更新(只存在這台裝置的瀏覽器)。
留言與討論
卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。