一、什麼是 Git?
Git 是一套版本控制系統,讓多人可以同時修改同一個專案,又不會互相覆蓋彼此的工作。每一次你執行 git commit,就相當於幫你的檔案拍一張「快照」,之後可以隨時回溯。
GitHub 是放置 Git repo 的雲端平台,提供網頁介面來管理 commit、分支與合併(Pull Request)。
二、本課程的工作流程
老師的 repo(drhhtang-pixel/2026-AI-Assignments)
┌─────────────────────────────────────────────┐
│ main ─────────────────────────────────▶ │ ← 受保護,禁止直接 push
└──────────┬──────────────────────▲───────────┘
│ Fork(複製一份到 │ Pull Request
│ 自己帳號) │ 老師 Code Review → Merge
▼ │
你的 fork(你的帳號/2026-AI-Assignments)
┌─────────────────────────────────────────────┐
│ main ──→ submission/M11234567-王小明 ──▶ │
└─────────────────────────────────────────────┘
│ git clone 到本機
▼
本機電腦
├── submissions/M11234567-王小明/
│ ├── index.html
│ └── thumbnail.png
│
└── git add / commit / push
│
▼
GitHub Actions 自動驗證 ──合格──▶ 老師審核 ──通過──▶ 合併到 main
│
▼
展示頁面自動更新
三、逐步繳交說明
1
Fork 老師的 repo
前往 github.com/drhhtang-pixel/2026-AI-Assignments,點擊右上角 Fork 按鈕,將 repo 複製到你自己的 GitHub 帳號。
2
Clone 到本機
到你的 fork 頁面,點 Code → Copy URL,然後在終端機執行:
git clone https://github.com/<你的帳號>/2026-AI-Assignments.git
cd 2026-AI-Assignments
3
建立繳交分支
分支名稱格式必須是
submission/<學號>-<姓名>:
git checkout -b submission/M11234567-王小明
分支名稱裡的
M11234567-王小明 就是你的繳交目錄名稱,之後所有步驟保持一致。4
建立作業目錄並放入必要檔案
在
submissions/ 下建立以你的學號-姓名命名的目錄。截圖必填,作業主檔擇一:
| 選項 | 適用情境 | 檔案 |
|---|---|---|
| A | 靜態 HTML 作業 | index.html(需含 <title> 標籤) |
| B | 已部署到 Vercel / Netlify / GitHub Pages | url.txt(見下方格式說明) |
submissions/
└── M11234567-王小明/
├── index.html ← 選項 A:靜態 HTML(需含 <title> 標籤)
│ ─ 或 ─
├── url.txt ← 選項 B:外部部署連結
└── thumbnail.png ← 必填截圖(建議 PNG,亦可 JPG,≤ 500 KB)
url.txt 格式(選項 B):
https://your-app.vercel.app
作品標題(選填,會顯示在 gallery 卡片上)
- 第一行:必填,網址必須以
https://開頭 - 按 Enter 換行
- 第二行:選填,作品名稱;不填則 gallery 顯示你的目錄名稱
截圖格式:建議使用 thumbnail.png(PNG 畫質較好);若使用 thumbnail.jpg 亦可通過 CI,但會出現提醒建議改為 PNG。
5
Stage 並 Commit
git add submissions/M11234567-王小明/
git commit -m "add submission: M11234567-王小明"
git add 把檔案加入「待提交清單」;git commit 建立快照。6
Push 到你的 fork
git push origin submission/M11234567-王小明
7
在 GitHub 開啟 Pull Request
Push 完後 GitHub 會顯示一個黃色提示列,點 Compare & pull request。確認目標是:
- Base repo:
drhhtang-pixel/2026-AI-Assignments - Base branch:
main
8
等待 CI 自動驗證與老師審核
PR 提交後,GitHub Actions 會自動執行
validate-submission 檢查。檢查通過後等候老師的 Code Review。老師核准(Approve)並 Merge 後,作業即自動出現在展示頁面。
四、常見錯誤與注意事項
❌ 目錄內既無 index.html 也無 url.txt
CI 會拒絕此 PR 並顯示:
CI 會拒絕此 PR 並顯示:
Submission must include either index.html or url.txt。請確認你有放入其中一個檔案。
❌ url.txt 內的網址不是 https://
CI 會拒絕此 PR 並顯示:
CI 會拒絕此 PR 並顯示:
url.txt must contain a valid https:// URL。請確認網址以 https:// 開頭(不能是 http://)。
❌ PR 修改到其他同學的檔案或根目錄檔案
你的 PR 只能包含
你的 PR 只能包含
submissions/<你的學號-姓名>/ 目錄內的變更。若 PR 同時修改了 README.md、scripts/、或其他同學的目錄,CI 會直接失敗。
❌ 目錄命名不正確
目錄名稱必須是
目錄名稱必須是
<學號>-<姓名> 格式,以連字號(-)分隔,姓名中間不能有空格。
- ✅ 正確:
M11234567-王小明、B10901234-AliceWang - ❌ 錯誤:
M11234567_王小明(底線)、M11234567 王小明(空格)、homework1(無學號)
❌ 截圖超過 500 KB
截圖請在存檔時壓縮。建議解析度 800×600 px 以內。
接受的檔名:
若使用 JPG,CI 會通過但會顯示提醒:
截圖請在存檔時壓縮。建議解析度 800×600 px 以內。
接受的檔名:
thumbnail.png(建議)、thumbnail.jpg、thumbnail.jpeg。若使用 JPG,CI 會通過但會顯示提醒:
WARNING: PNG format is recommended.
❌ index.html 缺少 <title> 標籤
展示頁面會從
展示頁面會從
<title> 抓取標題顯示在卡片上。請確認你的 index.html 包含如下標籤:<title>我的作業名稱</title>
❌ 直接 push 到 main
main 分支有保護,你無法直接 push。請務必先建立 submission/<學號-姓名> 分支再 push,並透過 PR 繳交。