Git Commit 規范以及emoji 使用指南

Git版本規范
分支
master
分支為主分支(保護分支),不能直接在master上進行修改代碼和提交develop
分支為測試分支,所以開發完成需要提交測試的功能合並到該分支feature
分支為開發分支,大家根據不同需求創建獨立的功能分支,開發完成后合並到develop分支fix
分支為bug修復分支,需要根據實際情況對已發布的版本進行漏洞修復
Tag
采用三段式,v版本.里程碑.序號,如v1.2.1
- 架構升級或架構重大調整,修改第2位
- 新功能上線或者模塊大的調整,修改第2位
- bug修復上線,修改第3位
changelog
- 版本正式發布后,需要生產changelog文檔,便於后續問題追溯
commit message規范
Commit message一般包括三部分:
Header
、Body
和Footer
Header
-
type(scope):subject
-
type
:用於說明commit的類別,規定為如下幾種- feat:新增功能;
- fix:修復bug;
- docs:修改文檔;
- refactor:代碼重構,未新增任何功能和修復任何bug;
- build:改變構建流程,新增依賴庫、工具等(例如webpack修改);
- style:僅僅修改了空格、縮進等,不改變代碼邏輯;
- perf:改善性能和體現的修改;
- chore:非src和test的修改;
- test:測試用例的修改;
- ci:自動化流程配置修改;
- revert:回滾到上一個版本;
-
scope
:【可選】用於說明commit的影響范圍 -
subject
:commit的簡要說明,盡量簡短
Body
- 對本次commit的詳細描述,可分多行
尾部(Footer)
- 不兼容變動:需要描述相關信息
- 關閉指定Issue:輸入Issue信息
git commit中使用emoji
-
emoji規范格式
git commit
時,提交信息遵循以下格式:
:emoji1: :emoji2: 不超過 50 個字的摘要,首字母大寫,使用祈使語氣,句末不要加句號
提交信息主體
引用相關 issue 或 PR 編號 <#110>
初次提交示例:
git commit -m ":tada: Initialize Repo"
-
emoji 指南
emoji | emoji 代碼 | commit 說明 |
---|---|---|
🎉 (慶祝) | :tada: |
初次提交 |
✨ (火花) | :sparkles: |
引入新功能 |
🔖 (書簽) | :bookmark: |
發行/版本標簽 |
🐛 (bug) | :bug: |
修復 bug |
🚑 (急救車) | :ambulance: |
重要補丁 |
🌐 (地球) | :globe_with_meridians: |
國際化與本地化 |
💄 (口紅) | :lipstick: |
更新 UI 和樣式文件 |
🚨 (警車燈) | :rotating_light: |
移除 linter 警告 |
🔧 (扳手) | :wrench: |
修改配置文件 |
➕ (加號) | :heavy_plus_sign: |
增加一個依賴 |
➖ (減號) | :heavy_minus_sign: |
減少一個依賴 |
⬆️ (上升箭頭) | :arrow_up: |
升級依賴 |
⬇️ (下降箭頭) | :arrow_down: |
降級依賴 |
⚡️ (閃電) 🐎 (賽馬) |
:zap: :racehorse: |
提升性能 |
📈 (上升趨勢圖) | :chart_with_upwards_trend: |
添加分析或跟蹤代碼 |
🚀 (火箭) | :rocket: |
部署功能 |
✅ (白色復選框) | :white_check_mark: |
增加測試 |
📝 (備忘錄) | :memo: |
撰寫文檔 |
🔨 (錘子) | :hammer: |
重大重構 |
🎨 (調色板) | :art: |
改進代碼結構/代碼格式 |
🔥 (火焰) | :fire: |
移除代碼或文件 |
✏️ (鉛筆) | :pencil2: |
修復 typo |
🚧 (施工) | :construction: |
工作進行中 |
👷 (工人) | :construction_worker: |
添加 CI 構建系統 |
💚 (綠心) | :green_heart: |
修復 CI 構建問題 |
🔒 (鎖) | :lock: |
修復安全問題 |
🐳 (鯨魚) | :whale: |
Docker 相關工作 |
🍎 (蘋果) | :apple: |
修復 macOS 下的問題 |
🐧 (企鵝) | :penguin: |
修復 Linux 下的問題 |
🏁 (旗幟) | :checked_flag: |
修復 Windows 下的問題 |
案例
-
使用commit message規范

-
使用commit emoji規范

Git Commit 優點
- 統一團隊Git Commit標准,便於后續代碼review、版本發布、自動化生成change log
- 可以提供更多更有效的歷史信息,方便快速預覽以及配合cherry-pick快速合並代碼
- 團隊其他成員進行類
git blame
時可以快速明白代碼用意