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 ได้อัตโนมัติ

รูปแบบมาตรฐาน

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

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

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

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

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

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

ข้อแนะนำเพิ่มเติม

  1. ใช้คำกริยาที่เป็นปัจจุบัน : เช่นใช้ 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 … 3,249 3,250 3,251 … 3,259 ถัดไป

Projects

  • Statement Columns Mapping Helper
  • PlusMagi Site Search
  • PlusMagi Tags Reindex
  • jQuery Plus Repeater

Recent Posts

  • Rule Engine: Callidus
  • เบลด พันธุ์ฆ่าอมตะ
  • CRM
  • HMAC
  • The Karate Kid: คิด คิด ต้องสู้

Archives

Categories

  • .net core (15)
  • AI (49)
  • business (30)
  • Businesses (30)
  • cd (42)
  • ci (45)
  • culture (1)
  • Design (151)
    • UX/UI (23)
  • devops (120)
  • devsecops (22)
  • dotnet (45)
  • envoy (2)
  • Histories (20)
  • history (1)
  • Life (583)
    • Books (57)
    • Cartoon (11)
    • Mindset (14)
    • Movies (27)
    • Philosophy (1)
    • Psychology (1)
    • Sci-Fi (43)
    • Tips and Tricks (60)
    • ปรัชญา (94)
    • พัฒนาตนเอง (339)
    • พุทธ (31)
    • สิ่งแวดล้อม (27)
  • mystery (3)
  • net core (8)
  • Network (299)
    • Apache HTTP Server (17)
    • IOT (15)
    • Nginx (38)
    • Stalwart (6)
  • networking (49)
  • Operating Systems (386)
    • Unix-like (273)
      • Android (20)
        • F-Droid (5)
      • Homebrew (22)
      • iPhone (11)
      • Linux (170)
      • macOS (129)
        • OrbStack (11)
      • Oh My ZSH (4)
      • Shell Script (68)
      • SSH (11)
    • Windows (149)
      • PowerShell (27)
      • WSL (25)
  • Programming (1,554)
    • .NET (63)
      • .NET Core EF (7)
      • C# (56)
    • API (133)
      • REST (52)
      • Swagger (13)
    • Database (387)
      • DBeaver (5)
      • MariaDB (37)
      • MySql (80)
      • Oracle Database (8)
        • 10g (3)
      • PostgreSQL (30)
      • RDBMS (75)
      • SQL Server (91)
        • SSMS (10)
        • T-SQL (30)
      • SQLite (2)
    • PowerBuilder (20)
    • Python (18)
    • Rust (44)
    • System Analyst (SA) (92)
    • Testing (92)
      • Automated Testing (42)
        • Playwright (11)
    • UML (52)
    • Web (822)
      • Backend (529)
        • Golang (2)
        • Java (98)
          • Spring Boot (17)
        • Node.js (12)
        • PHP (270)
          • Laravel (52)
          • Yii (5)
      • Frontend (277)
        • CSS (27)
          • Tailwind CSS (6)
        • JavaScript (226)
          • Angular (4)
          • jQuery (70)
          • Tabulator (28)
          • Vue.js (6)
      • WordPress (26)
  • Programs (112)
    • Excel (20)
  • r (2)
  • science (6)
  • SecDevOps (169)
    • CI/CD (10)
    • Docker (87)
    • GIT (47)
    • SVN (4)
  • Security (281)
  • sistema (1)
  • social (2)
  • system (260)
  • system analyst (28)
  • technology (716)
  • technologyระบบ (72)
  • technologyและระบบ (3)
  • typescript (9)
  • ui (47)
  • Uncategorized (6)
  • ux (49)
  • กฎหมาย (251)
  • การจัดการ (331)
  • การจัดการข้อมูล (270)
  • การจัดการข้อมูลและองค์ความรู้ (3)
  • การออกแบบ (37)
  • คณิตศาสตร์ (19)
  • ความปลอดภัย (138)
  • จริยธรรม (21)
  • จิตวิทยา (323)
  • ชีวิต (57)
  • ทั่วไป (10)
  • ธุรกิจ (370)
  • บุคคล (8)
  • บุคลิก (26)
  • ประวัติศาสตร์ (7)
  • ปัญญาประดิษฐ์ (22)
  • พฤติกรรม (8)
  • ภาษาศาสตร์คอมพิวเตอร์ (23)
  • ระบบ (231)
  • วัฒนธรรม (12)
  • วิชาการ (40)
  • วิชาการข้อมูล (45)
  • วิทยาการข้อมูล (126)
  • วิทยาการข้อมูลและภาษาศาสตร์คอมพิวเตอร์ (1)
  • วิทยาศาสตร์ (117)
  • วิทยาศาสตร์ข้อมูล (8)
  • สังคม (177)
  • สุขภาพ (108)
  • องค์ความรู้ (105)
  • เทคโนโลยี (220)
  • เทคโนโลยีระบบ (113)

Sirat WordPress Theme By VWThemes

Scroll Up
Exit mobile version