Viết Git commit message tốt: quy tắc ngắn gọn mà hữu ích

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

Mở lịch sử Git của một dự án và bắt gặp những commit như "fix", "update", "abc", "final final"? Khi cần tìm xem ai đổi cái gì và vì sao, những commit này gần như vô dụng. Một commit message tốt tốn vài chục giây để viết nhưng tiết kiệm hàng giờ cho cả nhóm về sau.

Cấu trúc một commit message chuẩn

Quy ước phổ biến gồm ba phần:

Dòng tiêu đề ngắn (khoảng 50-72 ký tự)Phần thân giải thích vì sao thay đổi, không chỉ là cái gì.Có thể nhiều đoạn, mỗi dòng khoảng 72 ký tự.Footer: tham chiếu issue, ví dụ Closes #123
  • Tiêu đề: tóm tắt thay đổi, viết như một mệnh lệnh, ví dụ "Add email validation to signup form".
  • Một dòng trống ngăn tiêu đề và phần thân.
  • Phần thân (tùy chọn): giải thích động cơ, cách tiếp cận, hạn chế, những điều không hiển nhiên.
  • Footer (tùy chọn): link issue, ghi chú breaking change.

Viết ở thể mệnh lệnh

Hãy hình dung commit message hoàn thành câu: "Nếu áp dụng, commit này sẽ ...". Do đó dùng "Add", "Fix", "Remove", "Refactor", thay vì "Added", "Fixed" hay "Fixes". Nếu nhóm bạn viết tiếng Việt, hãy chọn một cách và giữ nhất quán, ví dụ "Thêm kiểm tra email ở form đăng ký".

Giải thích "vì sao", không chỉ "cái gì"

Diff đã cho thấy dòng code nào thay đổi. Điều diff không nói được là lý do. So sánh:

Kém:  Fix bugTốt:  Fix crash when cart is empty at checkoutCheckout called cart.items[0] without checking length,which threw for new users. Return early with a message.

Sáu tháng sau, khi ai đó thắc mắc vì sao có đoạn kiểm tra này, họ có thể dùng git blame hoặc git log và hiểu ngay bối cảnh.

Một commit, một thay đổi logic

Commit message hay bắt đầu từ commit gọn. Đừng gộp "sửa lỗi đăng nhập", "đổi màu nút" và "nâng cấp thư viện" vào cùng một commit. Lợi ích của commit nhỏ:

  • Dễ review vì mỗi commit kể một câu chuyện.
  • Dễ hoàn tác bằng git revert mà không kéo theo thay đổi khác.
  • Dễ tìm lỗi bằng git bisect.

Nếu bạn lỡ sửa nhiều thứ cùng lúc, dùng git add -p để chọn từng phần thay đổi cho từng commit.

Conventional Commits: thêm tiền tố cho rõ loại thay đổi

Nhiều nhóm dùng quy ước Conventional Commits, thêm tiền tố vào tiêu đề:

Tiền tốÝ nghĩa
featThêm tính năng mới
fixSửa lỗi
docsChỉ thay đổi tài liệu
refactorCải tổ code, không đổi hành vi
testThêm hoặc sửa test
choreViệc vặt: cấu hình, cập nhật phụ thuộc
feat(auth): add password reset by emailfix(cart): prevent negative quantitydocs: update setup instructions

Ưu điểm là lịch sử dễ đọc lướt và có thể dùng công cụ để tự động sinh changelog. Tuy nhiên đây là quy ước của nhóm, hãy theo những gì dự án hiện tại đang dùng.

Những lỗi thường gặp

  1. Message mơ hồ: "update", "fix", "changes", "wip".
  2. Tiêu đề quá dài hoặc kết thúc bằng dấu chấm thừa.
  3. Commit cả file không liên quan (file build, log, cấu hình cá nhân).
  4. Viết cho chính mình thay vì cho người đọc không có ngữ cảnh.
  5. Commit rất lớn sau vài ngày làm việc, khó mô tả cho đúng.

Sửa message khi lỡ viết dở

Với commit gần nhất chưa push, bạn có thể sửa bằng:

git commit --amend

Còn commit đã push lên nhánh dùng chung thì không nên viết lại lịch sử khi chưa trao đổi với đồng đội.

Kết luận

Hãy xem commit message như một tin nhắn gửi cho đồng đội trong tương lai, bao gồm cả chính bạn. Tiêu đề ngắn ở thể mệnh lệnh, phần thân giải thích lý do, mỗi commit chỉ một ý là đủ để lịch sử dự án trở nên đáng đọc.

Bạn mới làm quen với Git và muốn học bài bản cách làm việc nhóm? Hãy xem các khóa học liên quan trên codebem.com.

author_photo
Nguyễn Đình Cường

0 comment