B
project-image

Commit Git

Tác giả:Lê Vũ Bằng
Thời gian đăng bài:12-09-2025
Tag:#git,#commit,#gitcommit,#gittool,
Tài liệu tham khảo:Git

Cách viết commit message “chuẩn chỉnh” cho dev mới

Trong blog này, mình sẽ chia sẻ chi tiết vì sao cần commit chuẩn, cấu trúc commit message, quy định cụ thể, kèm ví dụ minh họa và công cụ hỗ trợ.

1. Tại sao phải có quy định commit?

Khi làm việc nhóm, bạn sẽ gặp ngay mấy dòng commit “huyền thoại”:

  • update code
  • fix bug
  • test
  • done

👉 Sau 1 tháng, nhìn lại log thì chẳng ai biết commit đó làm gì.
Để tránh hỗn loạn, team cần thống nhất quy định commit để:

  • Lịch sử dự án rõ ràng, dễ đọc.
  • Tìm lỗi / debug dễ hơn.
  • Tạo changelog tự động cho release.
  • Code review nhanh và hiệu quả hơn.

2. Cấu trúc commit chuẩn (theo Conventional Commits)

Một commit message chuẩn có cấu trúc như sau:

<type>(scope): <short description>

[body]

[footer]

2.1. Type – loại commit

Một số type phổ biến:

  • feat → thêm tính năng mới
  • fix → sửa bug
  • docs → thay đổi tài liệu
  • style → chỉnh format code (tab, space, dấu ;…), không ảnh hưởng logic
  • refactor → tối ưu code, không thêm tính năng, không fix bug
  • test → thêm hoặc chỉnh sửa test
  • chore → việc vặt (build, config, update deps)

2.2. Scope – phạm vi

Chỉ định phần nào của project thay đổi, ví dụ: auth, api, ui, database.

2.3. Short description – mô tả ngắn

  • Viết ngắn ≤ 50 ký tự.
  • Dùng động từ: “thêm”, “sửa”, “cập nhật”, “xóa”.

2.4. Body – nội dung chi tiết (tùy chọn)

Mô tả thêm lý do, cách làm, thay đổi gì.

2.5. Footer – thông tin bổ sung (tùy chọn)

Dùng để ghi issue liên quan hoặc breaking changes.

Closes #123
BREAKING CHANGE: auth flow requires JWT

3. Ví dụ commit message chuẩn

feat(auth): thêm chức năng đăng nhập bằng Google

- Thêm button “Login with Google”
- API tích hợp Google OAuth
- Viết test case cho flow login
Closes #45
fix(api): sửa lỗi trả về 500 khi gọi /users
docs(readme): bổ sung hướng dẫn setup môi trường

4. Quy định khi viết commit (step by step)

  1. Chia nhỏ commit – mỗi commit chỉ nên làm 1 việc (fix bug thì chỉ fix bug, không kèm dọn code).
  2. Đặt type đúng – phân loại commit rõ ràng (feat, fix, docs...).
  3. Thêm scope nếu cần – để biết commit ảnh hưởng module nào.
  4. Viết description ngắn gọn – tránh dài dòng, không viết kiểu “update”, “done”.
  5. Body (nếu cần) – ghi chi tiết lý do hoặc cách fix, đặc biệt với commit quan trọng.
  6. Footer (nếu cần) – link issue, ticket hoặc note breaking change.
  7. Luôn test code trước khi commit – commit “chết” sẽ làm khổ cả team.

5. Công cụ hỗ trợ commit chuẩn

  • Commitlint → kiểm tra format commit.
  • Husky → chạy script (lint, test) trước khi commit.
  • VS Code Extension (Conventional Commits) → gợi ý format commit khi gõ.

6. Cheat sheet commit nhanh

TypeÝ nghĩaVí dụ
featThêm tính năngfeat(ui): thêm dark mode
fixSửa bugfix(auth): sai token khi refresh
docsUpdate docsdocs(readme): update hướng dẫn cài
styleChỉnh style codestyle: format code eslint
refactorRefactor coderefactor(api): tối ưu query
testThêm/chỉnh testtest(product): thêm test filter
choreViệc vặtchore: update package lock

7. Kết

Viết commit message chuẩn không mất nhiều thời gian, nhưng đem lại cực nhiều lợi ích:

  • Dễ quản lý dự án.
  • Giúp đồng đội hiểu code nhanh.
  • Đỡ đau đầu khi debug hoặc release.

Hãy coi commit là cách bạn trò chuyện với team và chính bạn trong tương lai. Viết tử tế hôm nay, vài tháng sau sẽ cảm ơn bản thân.

B
© 2025. All rights reserved by levubang