Skip to content

PlusMagi's Blog By Pitt Phunsanit

Plus emotional magic to the knowledge of logic.

  • หน้าแรก
  • About’s Pitt
Close Button

Git: Commit Prefix MessageGit: Commit Prefix Message

2009-08-092009-08-09| phunsanitphunsanit| 0 Comment | 07:00

การใช้ Git Commit Prefix เป็นแนวทางปฏิบัติที่ช่วยให้การทำงานร่วมกันในทีมเป็นระบบมากขึ้น ทำให้ประวัติการแก้ไข (Git History) อ่านง่าย และช่วยให้ระบบ Automate ต่างๆ เช่น การสร้าง Changelog อัตโนมัติทำงานได้อย่างแม่นยำ

บทความนี้จะสรุปมาตรฐานที่นิยมใช้ที่สุดคือ Conventional Commits ครับ


ทำไมต้องใช้ Git Prefix ?

  1. Readability: เข้าใจได้ทันทีว่าการเปลี่ยนแปลงนั้นเกี่ยวกับอะไร ( แก้บั๊ก, เพิ่มฟีเจอร์, หรือแค่จัดฟอร์แมต )
  2. Efficiency: ค้นหาประวัติการแก้ไขได้รวดเร็วด้วยคำสั่ง
    git log --grep
  3. Automation: สามารถใช้เครื่องมือช่วยรวบรวม Version และ Release Notes ได้อัตโนมัติ

รูปแบบมาตรฐาน ( Structure )

รูปแบบที่นิยมที่สุดประกอบด้วย 3 ส่วนหลัก
type( scope ): description

  • Type: ประเภทของการเปลี่ยนแปลง ( บังคับ )
  • Scope: ส่วนของโปรเจกต์ที่ได้รับผลกระทบ เช่น ( ui ), ( api ), ( auth ) ( ไม่บังคับ )
  • Description: คำอธิบายสั้นๆ ว่าทำอะไร (บังคับ)

ประเภทของ Prefix ( Types ) ที่พบบ่อย

Prefixการใช้งาน
featการเพิ่ม Feature ใหม่ให้กับระบบ
fixการแก้ไข Bug ต่างๆ
docsการแก้ไข Documentation ( ไฟล์ .md, คอมเมนต์ในโค้ด )
styleการปรับแก้รูปแบบโค้ด ( Whitespace, Formatting, ลืมใส่ Semicolon ) โดยไม่กระทบ Logic
refactorการแก้ไขโค้ดเพื่อให้อ่านง่ายหรือประสิทธิภาพดีขึ้น โดยไม่มีการแก้บั๊กหรือเพิ่มฟีเจอร์
perfการปรับปรุงประสิทธิภาพ ( Performance ) ของโค้ด
testการเพิ่มหรือแก้ไข Test Cases
buildการเปลี่ยนแปลงที่กระทบระบบ Build หรือ External Dependencies ( เช่น npm, composer )
ciการแก้ไขไฟล์ตั้งค่า CI Configuration ( เช่น GitHub Actions, GitLab CI )
choreงานจิปาถะอื่นๆ เช่น การอัปเดตไฟล์ .gitignore
revertการยกเลิก ( Undo ) Commit ก่อนหน้า
securitySecurity

ตัวอย่างการใช้งานจริง

  • เพิ่มฟีเจอร์ใหม่: feat( auth ): add google oauth2 login
  • แก้ไขบั๊ก: fix( api ): resolve memory leak in user controller
  • อัปเดตเอกสาร: docs: update installation steps in README
  • ปรับปรุงประสิทธิภาพ: perf( database ): optimize query for dashboard statistics
  • งานทั่วไป: chore: update dependencies

ข้อแนะนำเพิ่มเติม ( Best Practices )

  1. ใช้คำกริยาที่เป็นปัจจุบัน ( Imperative mood ): เช่นใช้ add แทน added หรือ adds ให้มองว่ามันคือคำสั่งว่า “ถ้า apply commit นี้ มันจะทำอะไร”
  2. เริ่มด้วยอักษรตัวเล็ก: โดยทั่วไปนิยมใช้ตัวเล็กทั้งหมดสำหรับ Prefix
  3. กระชับแต่ได้ใจความ: ส่วน Description ไม่ควรยาวเกิน 50-72 ตัวอักษร
  4. แยกการแก้ไข: หากมีการแก้ไขหลายอย่างในคราวเดียว ควรแยกเป็นหลาย Commit เพื่อให้ใส่ Prefix ได้ถูกต้องแม่นยำ

อ่านเพิ่มเติม

  • GIT: Cherry-pick: เก็บเฉพาะลูก
  • GIT:update personal access tokens in all sub folder
  • GIT: ละเว้นไฟล์ temp ของพวก office
Read MoreRead More

Posts pagination

ก่อนหน้า 1 … 874 875 876 ถัดไป

Projects

  • Statement columns mapping Helper
  • Plusmagi Search
  • jQuery Plus Repeater

Recent Posts

  • MariaDB: Character Set และ Collation
  • laravel: breeze, Jetstream, spatie ต่างกันอย่างไร
  • Bcrypt: Password Hashing
  • Monolithic Architecture
  • Spring Security: SecurityConfig

Archives

Categories

  • AI (4)
  • Businesses (3)
  • Design (30)
    • UX/UI (3)
  • Histories (8)
  • Life (47)
    • Books (20)
      • สืบสวน (4)
    • ECO (3)
    • Sci-Fi (2)
    • พุทธ (3)
  • Network (287)
    • Android (13)
      • F-Droid (7)
    • Apache Apache HTTP Server (17)
    • Docker (28)
    • Homebrew (14)
    • IIS (7)
    • IOT (4)
    • Linux (92)
    • macOS (67)
      • OrbStack (10)
    • Nginx (26)
    • RabbitMQ (4)
    • Samba (5)
    • Shell Script (28)
    • SSH (11)
    • Windows (96)
      • PowerShell (18)
      • WSL (21)
  • Programming (602)
    • API (17)
      • REST (5)
      • Swagger (6)
    • C# (15)
      • .NET Core EF (3)
    • CI/CD (3)
    • Database (162)
      • DBeaver (3)
      • RDBMS (144)
        • DB2 (2)
        • MariaDB (18)
        • MySql (56)
        • Oracle Database (4)
          • 10g (2)
        • PostgreSQL (3)
        • SQL Server (83)
          • ADS (3)
          • SMO (4)
          • SSMS (8)
          • T-SQL (26)
    • Flutter (2)
    • GIT (22)
    • Java (44)
      • JasperReports (3)
      • Joget (19)
      • Spring Boot (14)
    • Node.js (1)
    • PowerBuilder (11)
      • PowerBuilder 8 (10)
    • Python (8)
    • Rust (1)
    • Testing (7)
      • Automated Testing (4)
        • Playwright (2)
        • Selenium (2)
    • UML (1)
    • Version Control (1)
    • Web (279)
      • CSS (16)
        • Bootstrap (3)
        • Tailwind CSS (3)
      • HTML (23)
      • JavaScript (108)
        • AG Grid (1)
        • Angular (1)
        • jQuery (64)
          • DataTables (14)
        • React (2)
        • Tabulator (11)
        • TypeScript (10)
        • Vue.js (3)
      • PHP (161)
        • CodeIgniter (11)
        • Laravel (33)
          • Laravel 11 (10)
          • Laravel 5 (19)
        • PrestaShop (1)
        • Yii (19)
          • Yii 2 (16)
      • SEO (2)
      • WordPress (20)
  • Programs (80)
    • Bitwarden (5)
    • Excel (8)
    • Figma (7)
    • Google Chrome (6)
    • Mozilla Firefox (9)
    • Oh My ZSH (4)
    • Stalwart (5)
    • USB Boot (7)
  • Q & A (8)
  • Security (29)
  • Tips & Tricks (72)
    • iPhone (7)
      • Jailbreaking (2)
  • Uncategorized (1)
  • กฎหมาย (3)
  • คณิตศาสตร์ (4)

Sirat WordPress Theme By VWThemes

Scroll Up