測驗:Git 基本操作
共 5 題,點選答案後會立即顯示結果
1. 執行 git init 之後,會在目錄中產生什麼?
2. 當你看到 git status 輸出中有 “Untracked files” 區塊,這表示什麼?
3. git add . 這個指令的作用是什麼?
4. 以下哪個是良好的 commit message 寫法?
5. 如果想要查看檔案具體改了哪些內容(新增或刪除了哪些行),應該使用哪個指令?
一句話說明
學會 init、add、commit、status 這四個指令,你就能開始用 Git 管理專案了。
為什麼需要知道這些
當你讓 AI 幫你寫程式,AI 常常會在回覆中提到:
「先 git init 初始化專案」
「把檔案 git add 到暫存區」
「記得 git commit 保存你的變更」
如果看不懂這些指令在幹嘛,你可能會:
- 不知道專案有沒有被 Git 追蹤
- 改了檔案但不知道怎麼保存版本
- 搞不清楚哪些檔案要加入版本控制
這篇教你看懂這些基本操作。
git init:建立儲存庫
最小範例
git init
這在幹嘛
在目前的目錄建立一個新的 Git 儲存庫。執行後會產生一個 .git 隱藏資料夾,這個資料夾裡面存放了所有版本控制的資訊。
逐行翻譯
git init # 「在這個資料夾開始用 Git 管理」
Code language: PHP (php)執行後你會看到:
Initialized empty Git repository in /your/path/.git/
Code language: PHP (php)翻譯:「已經在這個路徑建立空的 Git 儲存庫」
常見變化
AI 可能會這樣寫:
# 變化 1:建立並進入新專案
mkdir my-project && cd my-project && git init
Code language: PHP (php)翻譯:「建立 my-project 資料夾,進入它,然後初始化 Git」
# 變化 2:在已存在的專案目錄執行
cd /path/to/existing-project
git init
Code language: PHP (php)翻譯:「在已經有檔案的專案裡開始用 Git 管理」
Vibe Coder 檢查點
看到 git init 時確認:
- [ ] 我在正確的資料夾嗎?
- [ ] 這個專案之前有用過 Git 嗎?(如果有,不需要再 init)
git status:查看目前狀態
最小範例
git status
這在幹嘛
顯示目前工作目錄的狀態:哪些檔案被修改了、哪些準備要提交。這是你最常用的指令,隨時可以執行來確認目前狀況。
逐行翻譯
git status # 「告訴我現在的狀況」
Code language: PHP (php)四種檔案狀態
Git 把檔案分成四種狀態:
| 狀態 | 英文 | 意思 |
|---|---|---|
| 未追蹤 | Untracked | Git 還不知道這個檔案存在 |
| 已修改 | Modified | 檔案改過了,但還沒準備提交 |
| 已暫存 | Staged | 檔案準備好要提交了 |
| 已提交 | Committed | 檔案已經安全保存在版本歷史中 |
看懂 status 輸出
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: index.html
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
modified: style.css
Untracked files:
(use "git add <file>..." to include in what will be committed)
script.js
Code language: JavaScript (javascript)翻譯:
On branch main:你在 main 分支上Changes to be committed:這些檔案準備好要提交了(index.html)Changes not staged for commit:這些檔案改過了但還沒準備提交(style.css)Untracked files:這些檔案 Git 還不知道(script.js)
Vibe Coder 檢查點
看到 git status 輸出時確認:
- [ ] 我想提交的檔案有出現在 “Changes to be committed” 嗎?
- [ ] 有沒有不該被 Git 追蹤的檔案?(例如密碼、API key)
git add:加入暫存區
最小範例
git add index.html
Code language: CSS (css)這在幹嘛
把指定的檔案加入「暫存區」,表示「這個檔案準備好要提交了」。
逐行翻譯
git add index.html # 「把 index.html 標記為準備提交」
Code language: CSS (css)常見變化
AI 可能會這樣寫:
# 加入單一檔案
git add index.html
Code language: CSS (css)翻譯:「只把 index.html 準備好」
# 加入多個檔案
git add index.html style.css script.js
Code language: CSS (css)翻譯:「把這三個檔案都準備好」
# 加入所有變更的檔案
git add .
Code language: PHP (php)翻譯:「把目前資料夾下所有變更都準備好」
# 加入特定類型的檔案
git add *.js
Code language: CSS (css)翻譯:「把所有 .js 檔案準備好」
暫存區是什麼
想像你在整理行李:
- 工作目錄 = 房間裡散落的物品
- 暫存區 = 行李箱(放進去的東西準備要帶走)
- 提交 = 關上行李箱出發
git add 就是「把東西放進行李箱」的動作。
Vibe Coder 檢查點
看到 git add 時確認:
- [ ] 加入的檔案是我想要的嗎?
- [ ]
git add .會不會加入不該加的檔案?(建議先用git status確認)
git commit:建立提交
最小範例
git commit -m "新增首頁"
Code language: JavaScript (javascript)這在幹嘛
把暫存區的檔案正式保存到版本歷史中,並附上一段說明訊息。
逐行翻譯
git commit -m "新增首頁"
# git commit = 「保存這個版本」
# -m "新增首頁" = 「說明:新增首頁」
Code language: PHP (php)執行後你會看到:
[main abc1234] 新增首頁
1 file changed, 10 insertions(+)
create mode 100644 index.html
Code language: CSS (css)翻譯:
[main abc1234]:在 main 分支建立了一個提交,編號是 abc12341 file changed:改了 1 個檔案10 insertions(+):新增了 10 行
常見變化
# 標準方式:帶訊息的提交
git commit -m "新增登入功能"
Code language: PHP (php)# 一次加入並提交所有已追蹤的檔案
git commit -am "修正錯字"
Code language: PHP (php)翻譯:-am 是 -a 和 -m 的組合。-a 表示「自動加入所有已追蹤檔案的變更」
注意:-a 只會加入「已追蹤」的檔案。如果是全新的檔案(Untracked),還是需要先用 git add 加入。
寫好 commit message 的原則
| 好的寫法 | 不好的寫法 |
|---|---|
| 新增使用者登入功能 | update |
| 修正首頁載入過慢的問題 | fix bug |
| 重構 API 呼叫邏輯 | changes |
原則:
- 寫「做了什麼」,不只是「改了」
- 一個提交做一件事
- 用動詞開頭:新增、修正、更新、移除、重構
Vibe Coder 檢查點
看到 git commit 時確認:
- [ ] 訊息有清楚描述這次改了什麼嗎?
- [ ] 這次提交只包含相關的變更嗎?
git log:查看提交歷史
最小範例
git log
這在幹嘛
顯示所有的提交歷史,從最新到最舊。
逐行翻譯
git log # 「給我看看過去做了什麼」
Code language: PHP (php)輸出範例:
commit abc1234567890abcdef1234567890abcdef12345 (HEAD -> main)
Author: Your Name <you@example.com>
Date: Mon Jan 20 10:00:00 2025 +0800
新增首頁
commit def4567890abcdef1234567890abcdef12345678
Author: Your Name <[email protected]>
Date: Sun Jan 19 15:30:00 2025 +0800
初始化專案
Code language: CSS (css)翻譯:
commit abc123...:這個提交的唯一編號(又稱 commit hash)(HEAD -> main):目前所在位置Author:誰提交的Date:什麼時候提交的- 下面的文字:提交訊息
常見變化
# 簡潔版:一行顯示一個提交
git log --oneline
Code language: PHP (php)輸出:
abc1234 新增首頁
def4567 初始化專案
# 圖形化顯示分支關係
git log --oneline --graph
Code language: PHP (php)輸出:
* abc1234 新增首頁
* def4567 初始化專案
# 只看最近 5 個提交
git log -5
Code language: PHP (php)# 組合使用
git log --oneline --graph -10
Code language: PHP (php)翻譯:「用圖形化的簡潔方式,顯示最近 10 個提交」
Vibe Coder 檢查點
看到 git log 輸出時確認:
- [ ] 提交訊息有意義嗎?能看出每次做了什麼嗎?
- [ ] 提交的頻率合理嗎?(太少可能代表一次改太多東西)
git diff:查看變更內容
最小範例
git diff
這在幹嘛
顯示檔案的具體變更內容:加了什麼、刪了什麼。
逐行翻譯
git diff # 「給我看看改了哪些內容」
Code language: PHP (php)輸出範例:
diff --git a/index.html b/index.html
index 1234567..89abcde 100644
--- a/index.html
+++ b/index.html
@@ -1,3 +1,4 @@
<html>
+ <head><title>My Site</title></head>
<body>
Hello World
Code language: HTML, XML (xml)翻譯:
--- a/index.html:修改前的檔案+++ b/index.html:修改後的檔案- 以
-開頭的行:被刪除的內容(通常顯示為紅色) - 以
+開頭的行:新增的內容(通常顯示為綠色)
常見變化
# 看已暫存的變更(準備要 commit 的內容)
git diff --staged
Code language: PHP (php)翻譯:「看看準備要提交的內容有什麼」
# 比較兩個提交
git diff abc123 def456
Code language: PHP (php)翻譯:「看看這兩個版本之間差了什麼」
Vibe Coder 檢查點
看到 git diff 輸出時確認:
- [ ] 變更的內容是我預期的嗎?
- [ ] 有沒有不小心改到的地方?
實作練習:完成第一次提交
跟著做一遍,建立你的第一個 Git 專案:
# 1. 建立專案資料夾
mkdir my-first-project
cd my-first-project
# 2. 初始化 Git
git init
# 3. 建立一個檔案
echo "# My First Project" > README.md
# 4. 查看狀態
git status
# 你會看到 README.md 是 Untracked
# 5. 加入暫存區
git add README.md
# 6. 再次查看狀態
git status
# 你會看到 README.md 準備要提交了
# 7. 提交
git commit -m "初始化專案,新增 README"
# 8. 查看歷史
git log --oneline
# 你會看到你的第一個提交
Code language: PHP (php)常見指令對照表
| 想做的事 | 指令 |
|---|---|
| 開始用 Git 管理 | git init |
| 看現在狀況 | git status |
| 準備提交檔案 | git add <檔案> |
| 準備提交全部 | git add . |
| 正式提交 | git commit -m "訊息" |
| 看提交歷史 | git log --oneline |
| 看改了什麼 | git diff |
對 Vibe Coding 的幫助
學會這些基本操作後,你可以:
- 更精準地下指令:當你要 AI 幫你改程式時,可以說「請幫我修改後,我會用 git diff 確認變更內容」,AI 會知道你希望看到清楚的變更
- 更有效地 Review AI 產出:用
git status確認 AI 改了哪些檔案,用git diff看具體改了什麼,不滿意就不要 commit - 更安全地嘗試:每次 AI 幫你改完,先 commit 一版。如果下次改壞了,你可以用
git log找回之前的版本
總結
Git 基本操作的核心流程:
1. git init → 開始追蹤專案
2. (編輯檔案)
3. git status → 看看改了什麼
4. git add → 準備要提交的檔案
5. git commit → 正式保存這個版本
6. git log → 查看歷史紀錄
記住:status 是你最常用的指令,隨時可以用它確認目前狀態。
進階測驗:Git 基本操作
共 5 題,包含情境題與錯誤診斷題。