日常 Git 操作
還沒做過初始化?請先完成 快速啟動 的 Clone 與個人分支建立。
本頁說明初始化完成後的日常開發流程。
分支架構
AGILAB-NTNU/project(實驗室唯一的 repo,不開放 Fork)
├── main ← 專案正式結束後才合併(由老師決定)
├── dev ← 整合分支,接受所有人的 PR
└── feature/your-name-topic ← 你的個人開發分支,完成後發 PR 到 dev
每日工作流程
1. 每天開始前:同步 dev 進度
把實驗室最新進度合入自己的分支,避免累積衝突:
2. 查看目前狀態
輸出範例:
Changes not staged for commit:
modified: src/your_project/models/policy.py
Untracked files:
src/your_project/models/attention.py
- modified:已存在的檔案被修改
- Untracked:新建的檔案,Git 還沒追蹤
3. Commit
只 stage 你修改過的相關檔案,不要一次 git add . 全加:
git add src/your_project/models/policy.py
git diff --staged # 確認 staged 的內容
git commit -m "feat: Add attention mechanism to policy network"
小步 Commit 原則
每完成一個獨立的小改動就 commit,不要等到功能全做完才一次 commit。小步 commit 讓你更容易找出問題,也讓隊友更容易 review。
4. Push
第一次 push 這個分支
分支第一次推上去時,記得加 -u 設定追蹤:git push -u origin feature/your-name-topic,之後就能直接 git push。
5. 功能完成時:發 Pull Request
- 前往實驗室 GitHub repo 頁面,點選 Compare & pull request
- 確認方向:
feature/your-name-topic→dev - 填寫 PR 標題(同 Commit 規範格式)與簡短說明
- 送出後通知主要負責人 review
PR 不需要等功能 100% 完整
想請隊友確認方向時,可以開 Draft PR,標題加上 [WIP]。
常用指令速查
git status # 查看目前狀態
git log --oneline -10 # 查看最近 10 個 commit
git diff # 查看未 staged 的修改
git diff --staged # 查看已 staged 的修改
git checkout dev && git pull # 抓取實驗室最新進度
git merge dev # 將 dev 合入目前分支
git push origin feature/your-name-topic # 上傳本地 commit 到實驗室 repo
git stash # 暫存目前修改(臨時切換任務時用)
git stash pop # 取回暫存的修改
下一步 → Git Commit 規範