你裝一個 AI 編程工具,說明第一句是「clone 這個 repo」。 你裝一個 Agent,它說「把你的專案初始化成 git repo」。 你想裝一個技能,教學寫「fork 之後改 SKILL.md 再提 PR」。
這些說明都假設你已經懂 Git。 但沒人解釋過它,因為對寫說明的人來說它像空氣。
這篇解釋五個詞,以及為什麼不寫程式的人也需要懂其中三個。
先講 Git 解決什麼問題
想像你在改一份重要文件。你的做法可能是:
報告.docx
報告_最終.docx
報告_最終_v2.docx
報告_最終_v2_真的最終.docx
報告_最終_v2_真的最終_老板改過.docx
Git 就是用來取代這堆檔案的。它做三件事:
- 記錄每一次改動的完整歷史,而且不是存整份副本,是存「這次改了哪幾行」
- 讓你可以隨時回到任何一個過去的狀態
- 讓多個人(或多個 Agent)同時改同一批檔案而不會互相蓋掉
第三件事是 AI 工具為什麼一直提它:Agent 會改你的檔案,而你需要能復原。
一、Repository(repo,儲存庫)
一個被 Git 追蹤的資料夾。 就是這樣。
它看起來跟普通資料夾一模一樣,差別只在裡面有一個隱藏的 .git 目錄 —— 所有歷史都存那裡。
cd 你的專案資料夾
git status # 看這個資料夾是不是 repo,以及有什麼變動
如果它說 not a git repository,那它就只是一個普通資料夾。
為什麼 AI 工具要你把專案變成 repo:因為這樣它改壞了東西你能復原。一個沒有 git 的資料夾,被 Agent 改錯就是改錯了。
把普通資料夾變成 repo:
git init
二、Commit(提交/快照)
一次「存檔」,但帶一句說明。
git add . # 把變動放進「準備存檔」區
git commit -m "修正登入頁的錯字" # 存檔,附一句說明
每個 commit 有一個獨一無二的編號(一長串字母數字,像 a3f9c21),以及誰在什麼時候改了什麼的完整記錄。
關鍵觀念:commit 不是「存檔」,是「一個可以回去的點」。 你可以隨時回到任何一個 commit 的狀態。
git log --oneline # 看歷史,一行一個 commit
git diff # 看「我改了但還沒 commit」的東西
對 AI 工具使用者,git diff 是最有用的一個指令。 Agent 說它改好了,git diff 讓你在接受之前看到它到底改了哪幾行。見 Agent 到底看得到什麼。
三、Branch(分支)
一條獨立的修改線。
預設的那條通常叫 main(舊專案可能叫 master)。你可以開一條新分支去試一個想法,試壞了直接丟掉,main 完全不受影響。
git branch # 看有哪些分支,* 是你現在所在的那條
git switch -c 試個想法 # 開一條新分支並切過去
git switch main # 切回主線
為什麼這跟 AI 工具有關:讓 Agent 在一條分支上工作,是最便宜的防護。它做壞了,你切回 main,什麼都沒損失。這比「備份整個資料夾」簡單得多,也比「祈禱它不要改壞」可靠。
本站在 子 Agent 隔離 裡講的是同一個思路的進階版。
四、Clone 與 Fork
這兩個詞常常被混用,但方向相反。
Clone:把別人的 repo 複製到你自己的電腦上。
git clone https://github.com/某人/某專案.git
這只是「下載」,但下載的是完整歷史,不是一個快照。你 clone 下來之後可以在本地隨便改,不需要任何人的許可,也影響不到原專案。
Fork:在 GitHub 上把別人的 repo 複製一份到你的帳號下。
Fork 是 GitHub(網站)的功能,不是 Git(工具)的功能。它讓你在伺服器上有一份自己的副本,然後你可以改它、並且請求原專案接受你的改動。
典型的技能安裝流程就是這樣:
fork 到自己帳號 → clone 自己那份到本機 → 改 → commit → push → 提 PR
如果你只是想用一個東西,clone 就夠了,不需要 fork。 Fork 的意義是「我想把改動送回去」。
五、Pull Request(PR,合併請求)
「我改了這些,請你考慮併進去。」
它不是一個指令,是 GitHub(或 GitLab 等平台)上的一個頁面:列出你改了什麼、讓別人審查、討論、最後決定要不要接受。
你什麼時候會遇到它:
- 你想給一個開源專案貢獻東西
- 你在一個團隊裡,改動要經過同事審查才能進主線
- 你讓 Agent 幫你改一個 repo,它可能開一條分支然後叫你提 PR —— 這時候 PR 是「它做完了,等你審」的意思
你大概率不需要自己提 PR。 但你需要看得懂那個頁面:左邊是原本的,右邊是改後的,紅色是刪掉的行,綠色是加上的行。
六、不會寫程式的人需要懂哪三個
repo、commit、branch。
因為:
- repo 決定了你的檔案有沒有歷史可查。AI 工具要求它,是因為沒有它就沒有復原能力。
- commit 是「存一個可以回去的點」。在讓 Agent 動任何重要檔案之前先 commit 一次,這是成本最低、回報最高的防護。
- branch 讓你在不影響主線的情況下試錯。
clone/fork/PR 是「跟別人協作」才需要的。你自己在電腦上用 AI 工具,前三個就夠。
七、五個最常用的指令
git status # 現在什麼情況(最常打,沒有副作用)
git diff # 我改了什麼但還沒存
git add . && git commit -m "說明" # 存一個可以回去的點
git log --oneline -10 # 最近十個存檔點
git switch -c 新分支 # 開一條線去試
git status 與 git diff 是完全安全的 —— 它們只讀不寫,隨便打。先養成打 git status 的習慣,你就已經比多數人安全了。
八、一個錯誤觀念
「Git 很難,是工程師的東西。」
Git 的完整功能確實複雜(rebase、cherry-pick、merge 衝突處理)。但上面那五個指令覆蓋了 AI 工具使用者絕大多數的需求,而且它們的作用可以一句話說清楚:讓你能復原。
你不需要成為 Git 專家。你需要的是在讓 Agent 改東西之前,知道自己有退路。
關於退路本身,Checkpoint(檢查點) 這個詞在 AI 工具語境下有另一層意思(工具自己存的狀態快照),跟 git commit 是兩回事但目的相同 —— 見 Checkpoint(檢查點)。
下一步
- Repository(儲存庫/repo) / Git(版本控制) / Commit(提交/快照) / Branch(分支) / Clone 與 Fork / Pull Request(PR/合併請求) —— 這六個詞的一句話定義
- AI Agent 到底看得到什麼 —— 為什麼工作目錄與權限決定了它的視野
- 裝完沒反應 —— clone 下來卻跑不起來的排查順序
- 開發環境設定 —— Git 通常在那一步一起裝好
- 你的第一個 Agent —— 實際用一次