團隊利用GitHub協作開發軟體系統
團透過 GitHub 協同開發專案的基本流程如下:
1. 建立與設定專案
(1) 建立 GitHub Repository
- 登入 GitHub,點選 「New Repository」 建立一個新的儲存庫。
- 設定 Repository:
- 名稱(Repository Name)
- 可見性(Public 或 Private)
- README 文件(建議勾選以初始化專案)
- .gitignore(選擇適合的開發環境,例如 Python、Node.js)
- License(選擇適當的開源授權,例如 MIT、GPL)
(2) 邀請協作者
- 在 GitHub 「Settings」→「Manage Access」 中,邀請其他開發者加入專案。
2. 克隆(Clone)儲存庫到本機
在團隊成員的開發環境中,執行:
git clone https://github.com/your-username/repository-name.git
進入專案資料夾:
cd repository-name
3. 分支管理與開發流程
GitHub 協作的基本開發模式為 Git Flow,使用分支進行開發。
(1) 創建新分支
每位開發者應在 main
(或 develop
)分支的基礎上建立自己的功能分支:
git checkout -b feature-branch
例如:
git checkout -b feature-login-system
(2) 提交(Commit)與推送(Push)變更
開發過程中,定期提交變更:
git add . git commit -m "新增登入功能"
將變更推送到 GitHub:
git push origin feature-branch
4. 提交 Pull Request(PR)並進行審查
(1) 創建 Pull Request
- 在 GitHub 上,進入專案頁面,點選 「Pull Requests」 → 「New Pull Request」。
- 選擇 「Base」 為
main
(或develop
),「Compare」 選擇自己的feature-branch
。 - 填寫 PR 描述,說明變更內容。
(2) 代碼審查(Code Review)
- 團隊成員可在 PR 下留言、建議修改。
- 若需修改,開發者可在本機修正後
commit
,再次push
,PR 會自動更新。
(3) 合併(Merge)分支
- PR 獲得批准後,點選 「Merge pull request」 進行合併。
- 刪除
feature-branch
:git branch -d feature-branch git push origin --delete feature-branch
5. 同步最新變更
所有團隊成員應定期拉取最新程式碼:
git checkout main git pull origin main
6. 版本控制與發布
- 使用 GitHub Releases 發布新版本,標記
tag
版本號:git tag -a v1.0 -m "First stable release" git push origin v1.0
- 使用 Issue Tracker 追蹤 Bug 或新功能。
🔥 GitHub 協作開發實戰
讓我們透過一個虛擬團隊來實戰 GitHub 協作開發。假設有一個 「團隊專案:簡單待辦事項(To-Do List)Web 應用」,團隊有三位成員:
- Alice(負責 UI 設計與前端開發)
- Bob(負責後端 API)
- Charlie(負責資料庫與測試)
1️⃣ 由 Team Leader(Alice)建立專案
Alice 在 GitHub 上建立一個新儲存庫(Repository)
- 前往 GitHub 建立新儲存庫,名稱設定為
todo-app
。 - 設定:
- Public 或 Private(依團隊需求)
- 初始化 README.md
- 選擇 .gitignore → Node.js
- 選擇 MIT License
- 邀請 Bob 和 Charlie 作為協作者
- 進入 Settings → Manage Access,新增 Bob 和 Charlie 為協作者。
2️⃣ 團隊成員克隆專案到本機
Bob 和 Charlie 在各自的電腦上執行:
git clone https://github.com/Alice/todo-app.git cd todo-app
拉取最新變更:
git pull origin main
3️⃣ 建立開發分支
Alice、Bob、Charlie 分別建立自己的功能分支:
Alice – 設計前端 UI
git checkout -b feature-frontend-ui
Bob – 開發後端 API
git checkout -b feature-backend-api
Charlie – 建立資料庫
git checkout -b feature-database
4️⃣ 各自開發與提交變更
Alice 設計前端 UI
Alice 在 index.html
和 style.css
新增基本 UI:
<!-- index.html --> <!DOCTYPE html> <html lang="zh-TW"> <head> <meta charset="UTF-8"> <title>To-Do List</title> <link rel="stylesheet" href="style.css"> </head> <body> <h1>待辦事項</h1> <input type="text" id="taskInput" placeholder="輸入待辦事項"> <button onclick="addTask()">新增</button> <ul id="taskList"></ul> </body> </html>
/* style.css */ body { font-family: Arial, sans-serif; text-align: center; } ul { list-style: none; padding: 0; }
提交變更:
git add . git commit -m "新增前端 UI" git push origin feature-frontend-ui
Bob 開發後端 API
Bob 建立 server.js
:
// server.js const express = require('express'); const app = express(); const PORT = 3000; app.use(express.json()); let tasks = []; app.get('/tasks', (req, res) => { res.json(tasks); }); app.post('/tasks', (req, res) => { tasks.push(req.body.task); res.status(201).json({ message: 'Task added' }); }); app.listen(PORT, () => { console.log(`Server running on http://localhost:${PORT}`); });
提交變更:
git add . git commit -m "建立後端 API" git push origin feature-backend-api
Charlie 設計資料庫
Charlie 建立 database.js
,模擬 SQLite:
// database.js const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database(':memory:'); db.serialize(() => { db.run("CREATE TABLE tasks (id INTEGER PRIMARY KEY, name TEXT)"); }); module.exports = db;
提交變更:
git add . git commit -m "新增 SQLite 資料庫" git push origin feature-database
5️⃣ 提交 Pull Request(PR)並進行 Code Review
Alice 創建 PR
- 進入 GitHub,點選 Pull Requests → New Pull Request。
- 選擇 base:
main
,compare:feature-frontend-ui
。 - 填寫描述:「新增待辦事項前端 UI」並提交 PR。
- 通知 Bob 和 Charlie 進行 Code Review。
Bob 和 Charlie 進行 Code Review
- Bob 和 Charlie 檢查 UI 程式碼並留言建議,例如:
- 「請在
input
欄位加上maxlength=100
,避免過長輸入。」
- 「請在
- Alice 修改後再
commit
,PR 會自動更新。
合併 PR
- Code Review 完成後,Alice 點選 「Merge pull request」 。
- 刪除已合併的
feature-frontend-ui
分支:git branch -d feature-frontend-ui git push origin --delete feature-frontend-ui
Bob 和 Charlie 依相同流程提交 PR,經過 Review 後合併至 main
。
6️⃣ 團隊同步最新變更
所有成員拉取最新程式碼:
git checkout main git pull origin main
7️⃣ 發布專案
Alice 在 GitHub Releases 標記版本:
git tag -a v1.0 -m "初版待辦事項應用" git push origin v1.0
專案成功協作完成! 🎉
這是完整的 GitHub 協作開發實戰流程,透過團隊分工、Git Flow、PR 審查,讓專案開發更有系統! 🚀