เขียน Commit message ให้ดีตามรูปแบบของ Conventional commits
Commit message เป็นข้อความที่อธิบายการเปลี่ยนแปลงที่ทำในโค้ด มันมีความสำคัญมากในการติดตามการเปลี่ยนแปลงที่เกิดขึ้นในแต่ละเวอร์ชันของซอฟต์แวร์ ช่วยให้นักพัฒนาคนอื่น ๆ สามารถเข้าใจการเปลี่ยนแปลงที่เกิดขึ้นได้ง่ายขึ้น และสามารถย้อนกลับไปแก้ไขหรืออัปเดตโค้ดได้อย่างถูกต้อง
รูปแบบของ Commit message ที่ดีควรเป็นไปตามรูปแบบของ Conventional Commits (ต่อไปนี้ขอเรียก Conventional) ซึ่งเป็นรูปแบบที่แนะนำโดย Git และ GitHub รูปแบบนี้ช่วยให้ Commit message เข้าใจง่ายและอ่านได้ง่ายขึ้น
รูปแบบของ Conventional มีดังนี้
<type>(<scope>): <คำอธิบายแบบสั้น>
<คำอธิบายแบบยาว>
- type ระบุประเภทของการเปลี่ยนแปลงที่เกิดขึ้น เช่น fix, feat, docs, style, refactor, test, chore
- scope (ละได้) ระบุขอบเขตของการเปลี่ยนแปลง เช่น ชื่อไฟล์หรือชื่อโมดูล
- short description ระบุคำอธิบายสั้น ๆ ของการเปลี่ยนแปลงที่เกิดขึ้น
- long description (ละได้) ระบุคำอธิบายรายละเอียดของการเปลี่ยนแปลงที่เกิดขึ้น
Commit type มีกี่แบบ อะไรบ้าง
ตามรูปแบบของ Conventional มีประเภทของการเปลี่ยนแปลงทั้งหมด 11 แบบ ได้แก่
- feat (feature) : เพิ่มคุณสมบัติใหม่
- fix (bug fix) : แก้ไขข้อผิดพลาด
- style (styles) : การเปลี่ยนแปลงที่ไม่ส่งผลต่อการทำงานของโค้ด (ช่องว่าง การจัดรูปแบบ เครื่องหมายอัฒภาคที่หายไป ฯลฯ)
- docs (documentation) : อัปเดตเอกสาร
- refactor (refactoring) : ปรับปรุงโค้ดโดยไม่เพิ่มหรือเปลี่ยนแปลงคุณสมบัติ
- perf (performance) : ปรับปรุงประสิทธิภาพ
- test (tests) : เพิ่มหรือปรับปรุงการทดสอบ
- build (builds) : การเปลี่ยนแปลงระบบ Build หรือ Dependencies ต่างๆ (npm, gulp)
- ci (Continuous Integrations) : ปรับปรุง CI ไฟล์ หรือ script ที่เกี่ยวข้องกับ CI (Gitlab-ci, Travis, Circle, BrowserStack, SauceLabs)
- chore (Chores) : การเปลี่ยนแปลงที่ไม่เกี่ยวข้องกับ src หรือไฟล์ Test
- revert (Reverts) : การย้อนกลับไป Commit ก่อนหน้า
ตัวอย่าง Commit message
fix(my-file): fix a bug
This commit fixes a bug in the `my-file` file.
---
feat(my-module): add a new feature
This commit adds a new feature to the `my-module` module.
---
docs(README): update the documentation
This commit updates the documentation in the `README` file.
ประโยชน์ของการใช้
- ทำให้ Commit message เข้าใจง่ายและอ่านได้ง่ายขึ้น
- ช่วยในการติดตามการเปลี่ยนแปลงที่เกิดขึ้นในแต่ละเวอร์ชันของซอฟต์แวร์
- ช่วยให้นักพัฒนาคนอื่น ๆ สามารถเข้าใจการเปลี่ยนแปลงที่เกิดขึ้นได้ง่ายขึ้น
- สามารถย้อนกลับไปแก้ไขหรืออัปเดตโค้ดได้อย่างถูกต้อง
หากใครเป็นนักพัฒนาซอฟต์แวร์ แนะนำให้ใช้รูปแบบของ Conventional ในการเขียน commit message จะช่วยให้ commit message ของเราเข้าใจง่ายและอ่านได้ง่ายขึ้น เป็นประโยชน์ต่อทั้งตัวเราเองและนักพัฒนาคนอื่น ๆ
อ่านเพิ่มเติม: https://www.conventionalcommits.org/th/v1.0.0/