所有入門單元免費開放 · 課程內容持續更新中

Git:給 AI 的安全網

讓 AI 動手改檔案之前,先學會「存檔」。這堂課裝好 Git,把專案變成有存檔紀錄的資料夾,學會看差異、丟掉改壞的修改,也學會請 Claude 幫你 commit,並認識 Claude Code 內建的檢查點與倒轉功能。

第 5.6 堂約 13 分鐘

為什麼 AI 需要安全網

上一堂我們談了權限:讓你在 Claude 動手之前有機會說「等一下」。但總有漏網之魚:你按了同意,結果改完才發現不對;或是改了十幾個地方,你根本記不得原本長怎樣。

這時候你需要的是「動手之後也能反悔」的能力。這就是 Git。

Git 是一個版本控制工具。白話說:它會幫你的資料夾拍「快照」,每一張快照叫做一個 commit(提交,也可以想成存檔點)。之後不管改成什麼樣子,都能跟存檔點比較,或者回到存檔點。

時間軸示意:存檔點 1 建立 README、存檔點 2 加上筆記、存檔點 3 整理目錄是最後一個好的版本;之後還沒存檔的修改被 Claude 改壞了,用 git restore 丟掉修改就回到存檔點 3;下方列出 git status、git diff、git add 加 git commit、git log 四個常用指令

只要有存檔點,改壞就不可怕。

步驟一:確認 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 做,順便看它怎麼操作:

請 Claude 幫你設定 Git

請幫我把這個資料夾設定成 Git 專案:

  1. 執行 git init。
  2. 建立 .gitignore,把 .env 和其他不該上傳的檔案排除。
  3. 把目前所有檔案做第一次 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,寫出清楚的說明:

請 Claude 幫你存檔

請看一下我目前改了哪些檔案,幫我 commit。說明用繁體中文,一句話講清楚這次改了什麼。

你也可以把這個習慣寫進 CLAUDE.md(還記得第 3 堂嗎?):

把存檔習慣寫進 CLAUDE.md

請在 CLAUDE.md 的「與我合作的方式」加上一條:每完成一個我要求的段落後,提醒我是否要 commit;commit 說明用繁體中文。

Claude Code 內建的「後悔藥」:檢查點

除了 Git,Claude Code 自己也有一個安全機制:檢查點(checkpoint)。你每送出一則訊息,它就自動記下當時的檔案狀態。

在終端機版本裡打開倒轉選單:

  • 輸入 /rewind,或
  • 在輸入框是空的時候按兩下 Esc。

選單會列出你這次對話送出過的訊息。選一則,再選要做什麼:

選項 效果
還原程式碼和對話 檔案和對話都回到那則訊息之前
只還原對話 對話倒回去,檔案保持現在的樣子
只還原程式碼 檔案倒回去,對話保留
從這裡開始摘要 不改檔案,把之後的對話濃縮,騰出空間
算了 什麼都不做

在 VS Code 裡,把滑鼠移到某則訊息上,會出現倒轉按鈕,可以選擇把程式碼倒回那個時間點。

左右兩欄比較:左邊是檢查點,由 Claude Code 在你每送出一則訊息時自動建立,用 /rewind 或按兩下 Esc 打開,可選擇還原程式碼或對話,限制是只追蹤 Claude 用編輯工具改的檔案;右邊是 Git commit,記錄整個資料夾的所有變更、永久保存、每個存檔點都有說明,建議開始新任務前和做好一個段落後各 commit 一次

檢查點很方便,但不能取代 Git

官方文件把檢查點定位為「對話中的快速復原」,並明確說它不是版本控制的替代品。原因是:

  • 只追蹤 Claude 用編輯工具改的檔案。如果某個檔案是被它執行的指令改掉或刪掉的(例如用指令搬移、刪除檔案),檢查點救不回來。
  • 你自己手動改的、其他程式改的,通常也不在範圍內。
  • 檢查點跟著對話走,舊的會被清掉;Git 的存檔點則會一直留著。

所以最穩的做法是兩張網一起用:Git 負責長久的存檔,檢查點負責「剛剛那一步不要了」。

行動練習
  1. 確認 git --version 有版本號,並設定好 user.name 和 user.email。
  2. 請 Claude 在 my-first-claude 執行 git init、建立 .gitignore,並做第一次 commit。
  3. 請 Claude 改 README,自己用 git status、git diff 看改了什麼,再用 git add . 和 git commit 存檔。
  4. 故意請 Claude 把 README 改壞,用 git restore README.md 救回來。
  5. 再改壞一次,這次改用 /rewind(或按兩下 Esc)選「只還原程式碼」救回來,比較兩種方法的感覺。
  6. 用 git log --oneline 看看你今天留下了幾個存檔點。

讀完了嗎?

標記完成後,單元與專案的進度會自動更新(只存在這台裝置的瀏覽器)。

卡住了?讓 AI 當你的家教複製這段提問範本,貼到 Claude 或其他 AI 工具,再補上你卡住的地方。

留言與討論

卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。

留言區即將開放。現在可以先到 GitHub 討論區 發問,或看看 交流頁 的其他管道。