團隊開發中,若缺乏清晰規範,提交記錄易變得混亂難維護。ThoughtBot 的 Git 工作流被廣泛認可,核心原則:功能分支隔離、提交歷史整潔、代碼評審把關。

git checkout master
git pull
git checkout -b myfeature # 新建功能分支
確保基於最新 master 開發,避免後期衝突。
git add --all # 暫存所有變更(含新增/修改/刪除)
git status # 確認變更文件
git commit --verbose # 顯示 diff 詳情,撰寫高質量提交信息
git add . 在 Git 2.0+ 為預設行為。
Present-tense summary under 50 characters
* More details (under 72 chars).
* More details (under 72 chars).
https://project.management-system.com/ticket/123
git fetch origin
git rebase origin/master
用 rebase 而非 merge,保持歷史線性乾淨,減少無謂合併提交。
功能完成後,將多個碎碎提交壓縮為 1-3 個邏輯提交:
git rebase -i origin/master
進入互動介面,將需合併的提交前綴改為 s (squash) 或 f (fixup):
pick 07c5abd Introduce OpenPGP
s de9b1eb Fix PostChecker::Post#urls
s 3e7ee36 Stop highlighting
pick fa20af3 Interactive rebase guide
squash:合併並保留提交信息;fixup:合併但丟棄該提交信息。git commit --fixup <commit> + git rebase -i --autosquash 自動化。git push --force origin myfeature
--force 必須加:rebase 重寫歷史,遠端分支需強制覆蓋。
推送後發起 PR 到 master,邀請團隊審查,通過後合併入主幹。
堅持此流程,團隊協作效率與代碼質量將顯著提升。