📝 開始前先測試一下
在閱讀文章前,先測試你對 Git 的了解程度吧!
測驗:Git 快速看懂
共 5 題,點選答案後會立即顯示結果
1. 在 Git 中,git add . 這個指令的作用是什麼?
2. 當你執行 git status 看到「Untracked files」訊息,這代表什麼?
3. AI 完成一個功能後建議你執行 git add . && git commit -m "新增功能",這兩個指令組合起來做了什麼?
4. 你想在不影響主線程式碼的情況下嘗試一個新方案,應該使用哪個 Git 功能?
5. AI 建議你執行 git reset --hard HEAD~1,作為 Vibe Coder 你應該注意什麼?
Git 快速看懂:Vibe Coder 必知
一句話說明
版本控制工具,讓你能存檔、回復、多人協作。
為什麼 Vibe Coder 要懂 Git?
當你用 AI 寫程式時,AI 經常會建議你執行 git 指令。你需要看懂這些指令在做什麼,才能確保不會搞壞你的專案。
| 你會遇到的情況 | Git 能幫你 |
|---|---|
| AI 改壞了程式碼 | 回復到之前的版本 |
| 想比較 AI 改了什麼 | 查看變更差異 |
| 想嘗試不同方案 | 開分支各做各的 |
| 要上傳到 GitHub | 推送程式碼 |
30 秒範例
# 安裝(Mac)
brew install git
# 或用 apt(Ubuntu/Debian)
sudo apt install git
Code language: PHP (php)# 最小可運行範例
git init # 建立 Git 儲存庫
git add . # 加入所有檔案
git commit -m "第一次存檔" # 存檔並寫備註
Code language: PHP (php)這段指令做了什麼:
- 在目前資料夾建立 Git 管理
- 把所有檔案標記為「要存檔」
- 正式存檔,備註叫「第一次存檔」
核心概念翻譯
| 你會看到 | 意思 |
|---|---|
git init |
在這個資料夾開始用 Git |
git add |
標記哪些檔案要存檔 |
git commit |
正式存檔(像遊戲存檔點) |
git status |
看目前狀態:什麼改了、什麼要存 |
git log |
看存檔歷史 |
git diff |
看改了什麼內容 |
AI 最常這樣用
用法 1:存檔目前進度
AI 完成一個功能後,通常會建議你存檔:
git add .
git commit -m "新增登入功能"
Code language: JavaScript (javascript)翻譯:把所有改過的檔案存檔,備註是「新增登入功能」
用法 2:看 AI 改了什麼
想確認 AI 改了什麼再決定要不要存檔:
git diff
翻譯:顯示所有還沒存檔的變更
git diff --staged
翻譯:顯示已經 add 但還沒 commit 的變更
用法 3:上傳到 GitHub
git remote add origin https://github.com/你的帳號/專案名.git
git push -u origin main
Code language: JavaScript (javascript)翻譯:
- 第一行:告訴 Git「origin」代表這個 GitHub 網址
- 第二行:把 main 分支推上去,
-u表示以後git push就會自動推到這
用法 4:回復到之前的版本
AI 改壞了,想回到上一次存檔:
git restore .
翻譯:放棄所有還沒存檔的修改,回到上次 commit 的狀態
💡 舊版 Git 用
git checkout .,新版(2.23+)建議用git restore .
git reset --hard HEAD~1
翻譯:退回到上一個存檔點(HEAD~1 表示往前一個版本)
⚠️ 警告:--hard 會永久刪除變更,用之前要確定!
用法 5:處理 Git 衝突
AI 可能會讓你處理合併衝突,你會看到這種標記:
<<<<<<< HEAD
你目前的程式碼
=======
要合併進來的程式碼
>>>>>>> branch-name
翻譯:Git 不知道要保留哪邊,需要你手動選擇。把不要的刪掉(包括 <<< === >>> 這些標記)。
常見狀態翻譯
當你執行 git status 時會看到:
| 狀態訊息 | 意思 |
|---|---|
Changes not staged for commit |
檔案改了但還沒 add |
Changes to be committed |
已經 add,準備好可以 commit |
Untracked files |
新檔案,Git 還不認識它 |
nothing to commit, working tree clean |
沒有要存的,一切都已存檔 |
分支:平行宇宙
分支讓你可以同時嘗試不同方案:
git branch experiment # 建立新分支叫 experiment
git switch experiment # 切換到 experiment 分支
# 或一行搞定:
git switch -c experiment # 建立並切換
Code language: PHP (php)💡 舊版 Git 用
git checkout,新版(2.23+)建議用git switch切換分支
翻譯:建立一個平行宇宙,在裡面隨便改,不影響主線
git switch main # 切回主分支
git merge experiment # 把 experiment 的修改合併進來
Code language: PHP (php)翻譯:回到主線,把平行宇宙的成果搬過來
Vibe Coder 檢查點
看到 AI 建議執行 git 指令時確認:
- [ ]
git reset --hard或git restore .?確定要放棄修改嗎? - [ ]
git push --force?這會覆蓋遠端,通常不該用 - [ ]
git commit -m "xxx"?備註有描述清楚這次改了什麼嗎? - [ ] 執行前先
git status看目前狀態 - [ ] 不確定的指令先 Google 或問 AI 這指令會做什麼
✅ 必看懂
這些指令會一直出現,要熟:
| 指令 | 記法 |
|---|---|
git add . |
「把改的東西加進去」 |
git commit -m "訊息" |
「存檔」 |
git push |
「推上去(到 GitHub)」 |
git pull |
「拉下來(從 GitHub)」 |
git status |
「看狀態」 |
git diff |
「看改了什麼」 |
📌 知道就好
這些進階功能遇到再查:
- git rebase:另一種合併方式,讓歷史更乾淨
- git stash:暫存目前的修改,之後再拿回來
- git cherry-pick:只拿某一個 commit 的修改
- git bisect:用二分法找是哪個 commit 弄壞的
- .gitignore:告訴 Git 哪些檔案不要管(如 node_modules)
常見問題處理
「啊我還沒準備好就 commit 了」
git reset --soft HEAD~1
翻譯:退回上一步,但保留檔案修改(不像 --hard 會刪掉)
「commit 訊息打錯了」
git commit --amend -m "新的訊息"
Code language: JavaScript (javascript)翻譯:修改最後一次 commit 的訊息
「我想看某個檔案以前的版本」
git show HEAD~3:path/to/file.py
翻譯:顯示 3 個版本前的 file.py 內容
小結
Git 對 Vibe Coder 來說就是:
- 存檔系統:
add→commit - 時光機:
log看歷史、reset回到過去 - 平行宇宙:
branch各做各的、merge合併 - 雲端同步:
push上傳、pull下載
記住這四個概念,看到 AI 的 git 指令就不會慌了!
🎯 進階測驗:實戰應用
讀完文章後,來挑戰進階題目,測試你是否能在實際情境中應用所學!
進階測驗:Git 快速看懂
共 5 題,包含情境題與錯誤診斷題。