Định Dạng Git Commit Message
Tạo tin nhắn Conventional Commits dễ dàng qua GUI.
Chèn Emoji, đếm ký tự và copy ngay tức thì.
✨ Tin nhắn tạo ra
Bạn cũng có thể thích
Giới thiệu
Đây là một công cụ tiện ích giúp lập trình viên tạo Git commit messages tuân thủ nghiêm ngặt tiêu chuẩn "Conventional Commits". Chỉ bằng các thao tác click trực quan, bạn có thể nhanh chóng xây dựng được tin nhắn có cấu trúc bài bản gồm: Type (Loại), Scope (Phạm vi), Subject (Chủ đề), Body (Nội dung) và Footer. Đồng thời, nó còn tự động đếm ký tự và chèn Gitmoji một cách thông minh, mọi thao tác hoàn toàn xử lý ở phía trình duyệt.
Cách sử dụng
Chọn Loại Commit
Chọn một trong 11 loại cơ bản: feat (thêm tính năng), fix (sửa lỗi), docs (tài liệu), refactor, v.v.
Điền Chủ đề & Nội dung
Viết tóm tắt ngắn gọn ở ô Chủ đề (Subject). Thêm các giải thích chi tiết xuống ô Nội dung (Body).
Copy & Dán
Nhấp nút Sao chép (Copy) và dán nó vào terminal (git commit -m) hoặc giao diện phần mềm quản lý Git.
Thuật ngữ
- Conventional Commits
- Một quy chuẩn thiết kế tin nhắn commit có cấu trúc: <type>(<scope>): <description>. Việc áp dụng chuẩn này giúp các máy móc tự động sinh ra CHANGELOG và phân tích SemVer dễ dàng.
- Gitmoji
- Sử dụng các biểu tượng cảm xúc (emoji) đặt trước tin nhắn commit để làm nổi bật trực quan mục đích của sự thay đổi. VD: ✨ = tính năng, 🐛 = lỗi.
- Subject (Chủ đề)
- Dòng đầu tiên của commit message. Khuyên dùng tối đa 50 ký tự. Nên viết bằng thể mệnh lệnh để miêu tả "bạn đã làm gì".
- Body (Nội dung)
- Dòng giải thích chi tiết cho sự thay đổi, cách Subject bởi một dòng trống. Khuyên dùng tối đa 72 ký tự mỗi dòng để log hiển thị đẹp mắt.
- Footer (Chân trang)
- Nơi ghi chú các tham chiếu tới số Issue, Pull Request (vd: Closes #123) hoặc tuyên bố BREAKING CHANGE.
- Scope (Phạm vi)
- Từ khóa tùy chọn bọc trong ngoặc đơn, ám chỉ khu vực ảnh hưởng của commit. VD: feat(auth) tức là tính năng nằm ở module xác thực.
- BREAKING CHANGE
- Những thay đổi phá vỡ tính tương thích ngược của mã nguồn. Nó có thể được biểu thị bằng dấu chấm than (!) sau loại (type), hoặc ghi hẳn dòng chữ này ở Footer.
- SemVer
- Phiên bản theo ngữ nghĩa (Semantic Versioning). Bằng cách dùng Conventional Commits, các công cụ như conventional-changelog sẽ tự động nâng đúng số phiên bản.
FAQ
- Q.Nội dung tôi nhập có bị gửi lên máy chủ không?
- Không. Toàn bộ quá trình tạo commit diễn ra hoàn toàn nội bộ trên trình duyệt của bạn. Nội dung code và commit của bạn tuyệt đối không bị lộ ra ngoài.
- Q.Tôi có thể thêm loại (type) commit tùy chỉnh không?
- Công cụ này hỗ trợ 11 loại chuẩn theo Conventional Commits. Nếu đội nhóm của bạn dùng loại tùy chỉnh, bạn có thể tự gõ thêm vào phần kết quả tạo ra.
- Q.Làm sao để kết hợp công cụ này với Git hooks?
- Bạn có thể dùng công cụ này kết hợp với commitlint (thông qua hook commit-msg) để đảm bảo mọi thành viên trong team đều tuân thủ định dạng Conventional Commits.
- Q.Có extension VS Code nào làm chức năng tương tự không?
- Có, bạn có thể dùng extension Commitizen. Tuy nhiên, ưu điểm của công cụ nền web này là bạn có thể truy cập ngay lập tức ở bất cứ đâu mà không cần cài đặt rườm rà.
- Q.Tôi có thể viết commit bằng tiếng Việt không?
- Có. Công cụ hỗ trợ gõ text bằng bất kỳ ngôn ngữ nào. Bạn chỉ cần tuân theo quy ước chung của nhóm bạn là được.
Ứng dụng
Nâng cao chất lượng Review Code
Lịch sử commit đồng nhất, tường minh giúp người review ngay lập tức hiểu được mục đích của hàng loạt file bị sửa đổi.
Dễ dàng tạo tự động CHANGELOG
Khi xây dựng được một lịch sử commit tuân thủ quy chuẩn, bạn có thể cắm các tool để máy tính tự động viết file CHANGELOG cho các phiên bản mới.
Đảm bảo chuẩn mực trong nhóm
Một nơi lý tưởng để những thành viên mới hoặc Dev thực tập vào đây tham khảo cách ghi chú commit mà không cần phải đọc cả trang tài liệu dài.
Rèn thói quen Git tốt
Làm quen và hiểu sâu về cấu trúc của tin nhắn commit, từ đó bạn có thể tự viết tay trực tiếp bằng dòng lệnh sau này.
Gửi phản hồi
Vui lòng cho chúng tôi biết suy nghĩ của bạn để giúp chúng tôi cải thiện công cụ.
Feedback is temporarily suspended
The server is busy or spam protection is active. Please try again later.