Git 快速看懂:Vibe Coder 必知

使用 AI 寫程式的你,必須看懂 Git 指令!本文用最簡單的方式教你理解 git add、commit、push、branch 等核心概念,讓你看到 AI 建議的 git 指令不再慌張。

📝 開始前先測試一下

在閱讀文章前,先測試你對 Git 的了解程度吧!

測驗:Git 快速看懂

共 5 題,點選答案後會立即顯示結果

1. 在 Git 中,git add . 這個指令的作用是什麼?

  • A. 正式存檔,建立一個存檔點
  • B. 把所有改過的檔案標記為「要存檔」
  • C. 上傳檔案到 GitHub
  • D. 下載最新的程式碼

2. 當你執行 git status 看到「Untracked files」訊息,這代表什麼?

  • A. 這些檔案已經被修改但還沒 add
  • B. 這些檔案已經準備好可以 commit
  • C. 這些是新檔案,Git 還不認識它
  • D. 這些檔案有衝突需要處理

3. AI 完成一個功能後建議你執行 git add . && git commit -m "新增功能",這兩個指令組合起來做了什麼?

  • A. 只是查看目前有哪些變更
  • B. 把變更上傳到 GitHub
  • C. 建立新的分支來存放變更
  • D. 把所有變更標記並正式存檔,備註是「新增功能」

4. 你想在不影響主線程式碼的情況下嘗試一個新方案,應該使用哪個 Git 功能?

  • A. git stash 暫存變更
  • B. git branch 建立分支
  • C. git reset --hard 回復版本
  • D. git diff 查看差異

5. AI 建議你執行 git reset --hard HEAD~1,作為 Vibe Coder 你應該注意什麼?

  • A. 這個指令很安全,可以直接執行
  • B. 這會把程式碼推到 GitHub,要確認權限
  • C. --hard 會永久刪除變更,要確定真的要放棄修改
  • D. 這只是查看上一個版本的內容,不會有影響

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)

這段指令做了什麼

  1. 在目前資料夾建立 Git 管理
  2. 把所有檔案標記為「要存檔」
  3. 正式存檔,備註叫「第一次存檔」

核心概念翻譯

你會看到 意思
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 --hardgit 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 來說就是:

  1. 存檔系統addcommit
  2. 時光機log 看歷史、reset 回到過去
  3. 平行宇宙branch 各做各的、merge 合併
  4. 雲端同步push 上傳、pull 下載

記住這四個概念,看到 AI 的 git 指令就不會慌了!


🎯 進階測驗:實戰應用

讀完文章後,來挑戰進階題目,測試你是否能在實際情境中應用所學!

進階測驗:Git 快速看懂

測驗目標:驗證你是否能在實際情境中應用所學。
共 5 題,包含情境題與錯誤診斷題。

1. AI 幫你完成新功能後,建議你執行 git reset --hard HEAD~1。身為 Vibe Coder,你應該怎麼做? 情境題

AI 說:「執行以下指令來回復到上一個版本」 $ git reset –hard HEAD~1
  • A. 直接執行,AI 應該知道自己在做什麼
  • B. 先執行 git push 備份再執行
  • C. 先確認是否真的要放棄修改,因為 --hard 會永久刪除變更
  • D. 改用 git reset --hard HEAD~10 回到更早的版本比較安全

2. 小明想把新功能的修改存檔,但執行後發現沒有任何東西被 commit,為什麼? 錯誤診斷

$ git commit -m “新增登入功能” On branch main nothing to commit, working tree clean
  • A. commit 訊息格式錯誤,需要用英文
  • B. 沒有先執行 git add 把變更標記起來
  • C. 需要先執行 git init 初始化
  • D. 分支名稱 main 不正確,應該用 master

3. 你正在開發新功能,想在不影響 main 分支的情況下嘗試一個實驗性的改法。最佳做法是? 情境題

目前狀態:你在 main 分支上,有一些還沒 commit 的修改 目標:建立新分支 experiment 並切換過去繼續開發
  • A. 直接執行 git switch experiment
  • B. 先 git stash,再 git branch experiment
  • C. 先 git reset --hard 清除修改,再建立分支
  • D. 執行 git switch -c experiment 建立並切換到新分支

4. 小華在合併分支時看到這個畫面,她應該怎麼處理? 錯誤診斷

app.js 檔案內容: <<<<<<< HEAD const API_URL = "https://api.example.com"; ======= const API_URL = "https://staging.example.com"; >>>>>>> feature-branch
  • A. 直接 commit,Git 會自動選擇正確的版本
  • B. 刪除整個檔案重新建立
  • C. 手動選擇要保留哪一行,刪除 <<<===>>> 標記後存檔
  • D. 執行 git merge --abort 取消合併,避免處理衝突

5. AI 建議執行一連串 git 指令,哪一個組合的順序是正確的存檔流程? 情境題

目標:把目前的修改存檔並推送到 GitHub
  • A. git pushgit add .git commit -m "更新"
  • B. git add .git commit -m "更新"git push
  • C. git commit -m "更新"git add .git push
  • D. git add .git pushgit commit -m "更新"

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *