(): Types bắt buộc
| Type | Mô tả |
|---|---|
| feat | Tính năng mới |
| fix | Sửa bug |
| docs | Thay đổi documentation |
| style | Format code (không ảnh hưởng logic) |
| refactor | Refactor code (không fix bug, không thêm feature) |
| perf | Cải thiện performance |
| test | Thêm/sửa tests |
| chore | Thay đổi build process, tools, dependencies |
| ci | Thay đổi CI/CD config |
| revert | Revert commit trước |
Quy tắc viết commit message
- Subject line tối đa 50 ký tự
- Subject viết dạng imperative: "add feature" KHÔNG PHẢI "added feature"
- Subject KHÔNG kết thúc bằng dấu chấm
- Body wrap ở 72 ký tự
- Body giải thích WHAT và WHY, không phải HOW
- Dùng tiếng Anh cho commit messages
Ví dụ tốt feat(auth): add JWT refresh token support Implement automatic token refresh when access token expires. This prevents users from being logged out unexpectedly. Closes #123
Ví dụ xấu (KHÔNG LÀM) ❌ fixed stuff ❌ update code ❌ WIP ❌ changes ❌ feat: Add new feature for user authentication system that allows users to login.
Branch Naming Convention
Format /- Types
| Type | Mô tả |
|---|---|
| feature/ | Tính năng mới |
| fix/ | Sửa bug |
| hotfix/ | Sửa bug khẩn cấp trên production |
| refactor/ | Refactor code |
| docs/ | Documentation |
| test/ | Testing |
| chore/ | Maintenance tasks |
Quy tắc
- Dùng lowercase
- Dùng dấu gạch ngang - thay vì underscore _
- Ngắn gọn nhưng mô tả được mục đích
- Bao gồm ticket/issue ID nếu có Ví dụ
✅ feature/123-add-user-auth ✅ fix/456-login-redirect-loop ✅ hotfix/789-payment-crash ✅ refactor/optimize-database-queries
Git Workflow Rules PHẢI LÀM (MUST DO)
-
Luôn git status trước khi commit
-
Luôn git diff để review changes trước khi commit
-
Luôn viết commit message có ý nghĩa
-
Commit thường xuyên, mỗi commit là một logical unit
-
Pull/fetch trước khi bắt đầu làm việc
-
Tạo branch mới cho mỗi feature/fix KHÔNG ĐƯỢC LÀM (MUST NOT)
-
❌ KHÔNG git push --force lên main/master
-
❌ KHÔNG git reset --hard trên shared branches
-
❌ KHÔNG commit trực tiếp lên main/master
-
❌ KHÔNG commit files chứa secrets (.env, credentials)
-
❌ KHÔNG commit node_modules, vendor, build artifacts
-
❌ KHÔNG dùng git add . mà không review trước
-
❌ KHÔNG rebase public/shared branches
CẦN HỎI USER TRƯỚC KHI
- Push lên remote repository
- Merge/rebase branches
- Delete branches
- Amend commits đã push
- Force push (nếu thực sự cần thiết)
Protected Files (KHÔNG commit)
.env .env.* *.env
credentials secret *.pem *.key *_rsa *_dsa
.idea/ .vscode/ *.swp
node_modules/ vendor/ pycache/
dist/ build/ *.log
Pre-commit Checklist
Trước mỗi commit, Claude PHẢI verify:
- Code quality - Code đã được format - Không có console.log/print debug - Không có commented-out code
- Security - Không có hardcoded secrets - Không có sensitive data trong logs - .env files không bị staged
- Commit hygiene - Commit message theo convention - Chỉ commit files liên quan đến task - Không commit generated files
Commit Frequency Guidelines
| Khi nào commit | Ví dụ |
|---|---|
| Hoàn thành một unit of work | Thêm xong một function |
| Trước khi refactor | Backup trạng thái hiện tại |
| Sau khi fix một bug | Mỗi bug = 1 commit |
| Khi tests pass | Green state |
| Trước khi kết thúc ngày | WIP commit (nếu cần) |