เขียน Commit Message ว่ายากแล้ว เขียนให้เป็นระเบียบยิ่งยากกว่า มาแยกประเภทกันเพื่อให้ดู เป็นระเบียบมากขึ้นกันเถอะ อ่านเองก็เข้าใจ ใครมาอ่านก็ไม่งง
แต่ประเภทพวกนี้ก็ไม่ได้มีแนวทางชัดเจนกำหนดไว้ว่ามีอะไรบ้าง โพสท์นี้ก็จะขอยกแนวทางที่ Angular ใช้งานมาซึ่งได้แยกเป็นประเภทดังนี้:
- feat (✨): ฟีเจอร์ใหม่
- fix (🐛): แก้ไขบัค
- refactor (📦): ปรับโครงสร้าง (ไม่ได้เพิ่มฟีเจอร์ แต่ก็ไม่ได้แก้บัค)
- style (💎): การแก้ไขโค้ดที่ไม่ได้เปลี่ยนแปลงความหมาย เช่ น เติม semicolon, ลบ whitespace
- test (🚨): เพิ่ม/แก้ไข Test
- perf (🚀): ปรับปรุงประสิทธิภาพการทำงาน
- build (🔨): การแก้ไขที่กระทบกระบวนการ Build
- ci (⚙️): ปรับการตั้งค่า CI เช่น ปรับขั้นตอนการทำงานของ GitHub Actions
- docs (📚): การแก้ไขที่เกี่ยวกับเอกสาร เช่น แก้ README
วิธีใช้งานก็แค่เติมนำหน้า Commit Message ไปเลย เช่น:
- feat: add confirmation dialog on delete
- fix: isOdd returns true when input is 0
- refactor: remove unnecessary else after return
ยังมีอีกประเภทที่น่าสนใจเพิ่มเติมจากแนวทางของ Angular คือ chore (♻️) สำหรับการแก้ไขที่ไม่เกี่ยวกับโค้ด แต่ก็ไม่เกี่ยวกับประเภทอื่น ๆ เลย (ง่าย ๆ ก็คือหาประเภทที่เหมาะไม่ได้) เช่น แก้ไขการตั้งค่า IDE, แก้ไข .gitignore, ฯลฯ
การทำแบบนี้ไม่ได้แค่ช่วยให้ดูมีระเบียบมากขึ้นเท่านั้น แต่ยังช่วยให้สามารถสร้าง Changelog จาก Commit History ได้แบบอัตโนมัติ ซึ่งหากใครสนใจก็สามารถไปดูได้ที่: https://github.com/conventional-changelog/conventional-changelog
อ้างอิง
- https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines
- https://github.com/pvdlg/conventional-changelog-metahub
- https://www.conventionalcommits.org/en/v1.0.0/#summary
เนื้อหานี้ถูกเผยแพร่ครั้งแรกในรูปแบบของโพสท์ Facebook เพื่อให้ง่ายต่อการสืบค้นจึงนำมาจัดเก็บในรูปแบบบทความด้วย