Files
2026-02-26 14:04:18 +07:00

15 KiB

Huong Dan Viet Git Commit Message Trong Du An

Tham khao: Conventional Commits


Muc Luc

  1. Nguyen Tac Chung
  2. Cau Truc Commit Message
  3. Cac Loai Type
  4. Scope - Pham Vi Thay Doi
  5. Quy Tac Viet Description
  6. Commit Message Voi Body Va Footer
  7. Bang Vi Du Day Du
  8. Vi Du Thuc Te Trong Du An
  9. Nhung Loi Thuong Gap
  10. Checklist Truoc Khi Commit

1. Nguyen Tac Chung

Viet commit message chuan giup:

# Loi ich Mo ta
1 Doc lich su de dang Nhin vao git log biet ngay thay doi gi
2 Tu dong tao changelog Cac tool co the tu dong tao changelog tu commit message
3 Lien ket voi issue tracker De dang trace commit voi task/ticket
4 Review code hieu qua Nguoi review hieu nhanh muc dich cua commit
5 Tu dong versioning Xac dinh phien ban tu dong (semantic versioning) dua tren type

2. Cau Truc Commit Message

Format chung

<type>(<scope>): <description>

Trong do:

Thanh phan Bat buoc Mo ta Vi du
type Co Loai thay doi (feat, fix, chore...) feat
scope Khong Pham vi/module bi anh huong auth, api, user
description Co Mo ta ngan, duoi 50 ky tu, viet hoa dau cau, khong dau cham cuoi add Google login
<type>(<scope>): <description>

<body>

<footer>

Vi du nhanh

feat(auth): add Google login
fix(api): resolve 404 error
docs(readme): update install guide
chore: update dependencies

3. Cac Loai Type

Type chinh (thuong dung)

Type Muc dich Anh huong version Vi du
feat Them tinh nang moi MINOR (1.x.0) feat(auth): add Google OAuth
fix Sua loi PATCH (1.0.x) fix(api): resolve 404 error
docs Cap nhat tai lieu Khong docs(readme): update install guide
style Doi format/UI khong anh huong logic Khong style: apply prettier formatting
refactor Tai cau truc code, khong thay doi chuc nang Khong refactor: simplify UserService logic
perf Toi uu hieu nang PATCH (1.0.x) perf: optimize database queries
test Them hoac sua test Khong test: add unit tests for AuthService
chore Thay doi nho, bao tri, CI/CD Khong chore: update dependencies

Type bo sung (it dung hon)

Type Muc dich Vi du
build Thay doi build system hoac dependencies build: upgrade to .NET 8
ci Thay doi CI/CD pipeline ci: add GitHub Actions workflow
revert Hoan tac commit truoc do revert: revert feat(auth): add Google login

4. Scope - Pham Vi Thay Doi

Scope la phan tuy chon nam trong dau ngoac (), xac dinh module/file/module cu the bi anh huong.

Danh sach scope khuyen nghi cho du an Clean Architecture

Scope Layer/Module Vi du
domain MyNewProjectName.Domain feat(domain): add Order entity
app MyNewProjectName.Application feat(app): add CreateUserCommand
infra MyNewProjectName.Infrastructure feat(infra): configure EF Core DbContext
api MyNewProjectName.WebAPI fix(api): resolve CORS issue
admin MyNewProjectName.AdminAPI feat(admin): add dashboard endpoint
contract MyNewProjectName.Contracts feat(contract): add UserDto
test MyNewProjectName.UnitTest test(test): add UserService tests
auth Module xac thuc feat(auth): implement JWT refresh token
cache Module caching/Redis feat(cache): add Redis caching layer
db Database/Migration feat(db): add migration for User table
docker Docker/Container chore(docker): update docker-compose
deps Dependencies/NuGet chore(deps): update MediatR to v12

Quy tac scope

  • Viet thuong toan bo
  • Ngan gon, 1-2 tu
  • Phai nhat quan trong toan du an
  • Co the bo qua neu thay doi anh huong nhieu module

5. Quy Tac Viet Description

Nen lam

Quy tac Chi tiet Vi du
Viet hoa chu dau Chu dau tien cua description viet hoa feat: Add login page
Duoi 50 ky tu Giu description ngan gon fix: Resolve null reference in UserService
Dung dong tu menh lenh Bat dau bang dong tu (add, fix, update, remove...) feat: Add user authentication
Khong dau cham cuoi Khong ket thuc bang dau . docs: Update README
Mo ta "lam gi" Tap trung vao ket qua, khong phai qua trinh fix: Resolve 404 on login redirect

Khong nen lam

Quy tac Vi du sai Vi du dung
Khong viet chung chung fix: Fix bug fix(auth): Resolve token expiration error
Khong qua dai feat: Add new user authentication with JWT and refresh token and role-based access control feat(auth): Add JWT authentication
Khong dung qua khu feat: Added login page feat: Add login page
Khong ghi ten file fix: Fix UserService.cs fix(app): Resolve null ref in user creation
Khong dung tieng Viet trong type feat: Them trang dang nhap feat: Add login page

Danh sach dong tu khuyen dung

Dong tu Khi nao dung Vi du
add Them moi feat: Add payment gateway
remove Xoa bo refactor: Remove unused imports
update Cap nhat docs: Update API documentation
fix Sua loi fix: Fix null reference exception
resolve Giai quyet fix: Resolve race condition in checkout
implement Hien thuc feat: Implement search filter
refactor Tai cau truc refactor: Refactor UserRepository
optimize Toi uu perf: Optimize query performance
configure Cau hinh chore: Configure Serilog logging
migrate Di chuyen/migration feat: Migrate user table schema
replace Thay the refactor: Replace raw SQL with EF Core
rename Doi ten refactor: Rename UserDto to UserResponse
move Di chuyen refactor: Move validators to shared folder
simplify Don gian hoa refactor: Simplify error handling logic
extract Tach ra refactor: Extract email service interface

Khi commit phuc tap, can giai thich them, su dung body va footer:

Format

<type>(<scope>): <description>
                                    <-- dong trong bat buoc
<body>
                                    <-- dong trong bat buoc
<footer>

Vi du 1: Commit co body

feat(auth): Add JWT authentication

Implement JWT-based authentication using IdentityServer.
Include access token and refresh token flow.
Configure token expiration to 15 minutes for access token
and 7 days for refresh token.
fix(api): Resolve 500 error on user creation

The API was returning 500 when creating a user with an existing email.
Added proper validation check before inserting into database.
Return 409 Conflict instead of 500 Internal Server Error.

Resolves: PROJ-1234

Vi du 3: Breaking change

feat(api)!: Change response format for all endpoints

BREAKING CHANGE: All API responses now follow the new standard format:
{
  "success": true,
  "data": {},
  "message": "",
  "errors": []
}

Previous format with flat response body is no longer supported.
Clients must update to handle the new wrapper format.

Resolves: PROJ-5678
Keyword Muc dich Vi du
Resolves: Dong issue/ticket Resolves: PROJ-1234
Closes: Dong issue tren GitHub Closes: #123
Related: Lien quan den issue khac Related: PROJ-5678
BREAKING CHANGE: Thay doi khong tuong thich nguoc BREAKING CHANGE: API response format changed
Co-authored-by: Dong tac gia Co-authored-by: Name <email>
Reviewed-by: Nguoi review Reviewed-by: Name <email>

7. Bang Vi Du Day Du

feat - Them tinh nang moi

feat(auth): Add Google OAuth login
feat(api): Add pagination support for product list
feat(domain): Add Order entity with value objects
feat(app): Add CreateUserCommand with validation
feat(infra): Add Redis caching for product queries
feat(admin): Add dashboard statistics endpoint
feat(contract): Add OrderResponseDto

fix - Sua loi

fix(api): Resolve 404 error on login redirect
fix(auth): Fix token expiration calculation
fix(infra): Resolve database connection timeout
fix(app): Fix null reference in GetUserQuery
fix(domain): Fix value object equality comparison

docs - Tai lieu

docs(readme): Update installation guide
docs(api): Add Swagger annotations for OrderController
docs: Add contributing guidelines
docs: Update environment variables documentation

style - Format code

style: Apply EditorConfig formatting rules
style(api): Fix indentation in controllers
style: Remove trailing whitespace

refactor - Tai cau truc

refactor(app): Simplify UserService error handling
refactor(infra): Extract IEmailService interface
refactor: Move validation logic to domain layer
refactor(api): Replace manual mapping with AutoMapper

perf - Toi uu hieu nang

perf(infra): Optimize database queries with projection
perf(api): Add response compression middleware
perf(cache): Reduce Redis round trips with pipeline

test - Them/sua test

test(app): Add unit tests for CreateUserCommand
test(domain): Add tests for Order entity validation
test(infra): Add integration tests for UserRepository
test: Increase code coverage to 80%

chore - Bao tri

chore: Update NuGet packages
chore(deps): Upgrade to .NET 8
chore(docker): Update docker-compose configuration
chore(ci): Add GitHub Actions build workflow
chore: Update .gitignore

build - Build system

build: Upgrade to .NET 8 SDK
build: Add Directory.Build.props for shared config
build: Configure multi-stage Docker build

ci - CI/CD

ci: Add GitHub Actions workflow for PR checks
ci: Configure automatic deployment to staging
ci: Add SonarQube code analysis step

8. Vi Du Thuc Te Trong Du An

Luong lam viec mot feature hoan chinh

Gia su lam task PROJ-101: Them tinh nang dang nhap

# 1. Tao branch
git checkout -b feature/PROJ-101-add-login

# 2. Them entity va domain logic
git commit -m "feat(domain): Add User entity with email and password"

# 3. Them command/query
git commit -m "feat(app): Add LoginCommand with FluentValidation"

# 4. Them infrastructure
git commit -m "feat(infra): Implement UserRepository with EF Core"
git commit -m "feat(infra): Add password hashing service"

# 5. Them API endpoint
git commit -m "feat(api): Add AuthController with login endpoint"

# 6. Them test
git commit -m "test(app): Add unit tests for LoginCommand handler"

# 7. Cap nhat tai lieu
git commit -m "docs(api): Add Swagger docs for auth endpoints"

# 8. Push va tao PR
git push origin feature/PROJ-101-add-login

Luong sua loi

# 1. Tao branch
git checkout -b bugfix/PROJ-202-fix-login-error

# 2. Sua loi
git commit -m "fix(auth): Resolve incorrect password validation logic"

# 3. Them test cho truong hop loi
git commit -m "test(auth): Add test for invalid password scenario"

# 4. Push va tao PR
git push origin bugfix/PROJ-202-fix-login-error

Luong hotfix khan cap

# 1. Tao branch tu main
git checkout main
git checkout -b hotfix/PROJ-303-fix-sql-injection

# 2. Sua loi
git commit -m "fix(infra): Sanitize SQL parameters to prevent injection

The raw SQL query in SearchRepository was concatenating user input
directly into the query string. Replaced with parameterized query
using EF Core's FromSqlInterpolated method.

Resolves: PROJ-303"

# 3. Push va tao PR vao main
git push origin hotfix/PROJ-303-fix-sql-injection

9. Nhung Loi Thuong Gap

# Loi sai Vi du sai Vi du dung
1 Message qua chung chung fix: Fix bug fix(auth): Resolve token expiration error
2 Khong co type Add login page feat: Add login page
3 Dung qua khu feat: Added new feature feat: Add new feature
4 Qua nhieu thay doi trong 1 commit feat: Add login, register, forgot password Tach thanh 3 commit rieng
5 Commit file khong lien quan Commit ca file config lan feature Chi commit file lien quan
6 Message tieng Viet feat: Them trang dang nhap feat: Add login page
7 Dau cham cuoi feat: Add login page. feat: Add login page
8 Khong co scope khi can thiet fix: Fix null reference fix(app): Resolve null ref in GetUserQuery
9 Type sai feat: Fix bug fix: Resolve login error
10 Description qua dai 100+ ky tu tren 1 dong Giu duoi 50 ky tu, dung body cho chi tiet

10. Checklist Truoc Khi Commit

  • Commit message co dung format <type>(<scope>): <description> khong?
  • Type co chinh xac khong? (feat, fix, docs, style, refactor, perf, test, chore)
  • Scope co phan anh dung module bi anh huong khong?
  • Description co duoi 50 ky tu khong?
  • Description co bat dau bang dong tu menh lenh khong? (add, fix, update...)
  • Description co viet hoa chu dau khong?
  • Khong co dau cham cuoi trong description?
  • Moi commit chi chua 1 thay doi logic duy nhat?
  • Commit co lien ket ticket ID khong? (trong scope hoac footer)
  • Neu la breaking change, da danh dau ! va them BREAKING CHANGE: trong footer?

Tom Tat Nhanh

Format:   <type>(<scope>): <description>

Type:     feat | fix | docs | style | refactor | perf | test | chore | build | ci | revert

Scope:    domain | app | infra | api | admin | contract | test | auth | cache | db | docker | deps

Vi du:
  feat(auth): Add Google OAuth login          # scope = "auth" (module authentication)
  fix(api): Resolve 404 error                 # scope = "api" (API endpoints)
  docs(readme): Update install guide          # scope = "readme" (file/module cu the)

  feat: Them tinh nang moi (VD: feat(login): Add Google OAuth).
  fix: Sua loi (VD: fix(api): Resolve 404 error).
  docs: Cap nhat tai lieu.
  style: Doi format/UI khong anh huong logic.
  refactor: Tai cau truc code.
  perf: Toi uu hieu nang.
  chore: Thay doi nho (VD: chore: Update dependencies).

Quy tac:
  - Type va scope viet thuong
  - Description viet hoa chu dau, duoi 50 ky tu
  - Dung dong tu menh lenh (add, fix, update, remove, implement...)
  - Khong dau cham cuoi
  - 1 commit = 1 thay doi logic
  - Lien ket ticket ID khi co the