9.8 KiB
9.8 KiB
Huong Dan Dat Ten Git Branch Trong Du An
Tham khao: Git Branch Naming Conventions - Codiga
Muc Luc
- Nguyen Tac Chung
- Cau Truc Ten Branch
- Cac Loai Branch (Branch Types)
- Bang Mau Ten Branch Theo Chuc Nang
- Quy Tac Dat Ten (Good Practices)
- Mo Hinh Git Flow
- Vi Du Thuc Te Trong Du An
- Checklist Truoc Khi Tao Branch
1. Nguyen Tac Chung
Theo bai viet tu Codiga, mot quy uoc dat ten branch tot giup:
| # | Loi ich | Mo ta |
|---|---|---|
| 1 | Truy vet tac gia | Biet ai da tao branch (developer nao) |
| 2 | Lien ket voi issue tracker | De dang trace branch voi task/ticket tren JIRA, Trello, GitHub Issues... |
| 3 | Hieu muc dich branch | Nhanh chong biet branch la bugfix, feature, hay hotfix |
| 4 | To chuc workflow | Giu cho quy trinh lam viec co trat tu va hieu qua |
2. Cau Truc Ten Branch
Format chung
<type>/<ticket-id>-<short-description>
Trong do:
| Thanh phan | Bat buoc | Mo ta | Vi du |
|---|---|---|---|
type |
Co | Loai branch (feature, bugfix, hotfix...) | feature |
ticket-id |
Co (neu co) | Ma ticket/issue tu issue tracker | PROJ-1234 |
short-description |
Co | Mo ta ngan 3-6 tu, phan cach bang dau - |
add-user-authentication |
Vi du day du
feature/PROJ-1234-add-user-authentication
bugfix/PROJ-5678-fix-login-redirect
hotfix/PROJ-9012-patch-security-vulnerability
Format mo rong (co ten tac gia)
Neu team co nhieu nguoi lam chung mot ticket, them ten tac gia:
<author>/<type>/<ticket-id>-<short-description>
Vi du:
julien/feature/1234-new-dashboard
david/feature/1234-new-dashboard
Dieu nay giup phan biet ro rang code cua tung developer cho cung mot task.
3. Cac Loai Branch (Branch Types)
Branch chinh (Long-lived branches)
| Branch | Muc dich | Duoc merge tu | Ghi chu |
|---|---|---|---|
main (hoac master) |
Code production, luon o trang thai stable | release, hotfix |
Khong bao gio commit truc tiep |
develop |
Code moi nhat cho phien ban tiep theo | feature, bugfix |
Nhanh tich hop chinh |
staging |
Moi truong test truoc khi len production | develop |
Tuy chon, tuy du an |
Branch tam thoi (Short-lived branches)
| Prefix | Muc dich | Tao tu | Merge vao | Vi du |
|---|---|---|---|---|
feature/ |
Tinh nang moi | develop |
develop |
feature/PROJ-101-add-login-page |
bugfix/ |
Sua loi trong qua trinh phat trien | develop |
develop |
bugfix/PROJ-202-fix-null-reference |
hotfix/ |
Sua loi khan cap tren production | main |
main va develop |
hotfix/PROJ-303-fix-payment-crash |
release/ |
Chuan bi phien ban moi | develop |
main va develop |
release/v1.2.0 |
chore/ |
Cong viec bao tri, refactor, CI/CD | develop |
develop |
chore/update-dependencies |
docs/ |
Cap nhat tai lieu | develop |
develop |
docs/update-api-documentation |
test/ |
Viet test hoac cai thien test | develop |
develop |
test/add-unit-tests-user-service |
refactor/ |
Tai cau truc code, khong thay doi chuc nang | develop |
develop |
refactor/clean-up-user-repository |
4. Bang Mau Ten Branch Theo Chuc Nang
Authentication & Authorization
feature/PROJ-101-add-jwt-authentication
feature/PROJ-102-implement-refresh-token
feature/PROJ-103-add-role-based-access
bugfix/PROJ-104-fix-token-expiration
hotfix/PROJ-105-patch-auth-bypass
CRUD Entity
feature/PROJ-201-create-product-entity
feature/PROJ-202-add-product-api-endpoints
feature/PROJ-203-implement-product-search
bugfix/PROJ-204-fix-product-update-validation
Infrastructure & DevOps
chore/PROJ-301-setup-docker-compose
chore/PROJ-302-configure-ci-cd-pipeline
chore/PROJ-303-add-redis-caching
chore/PROJ-304-setup-logging-serilog
Database & Migration
feature/PROJ-401-add-migration-user-table
feature/PROJ-402-seed-initial-data
bugfix/PROJ-403-fix-migration-conflict
Documentation
docs/PROJ-501-update-readme
docs/PROJ-502-add-api-swagger-docs
docs/PROJ-503-create-deployment-guide
5. Quy Tac Dat Ten (Good Practices)
Nen lam
| Quy tac | Chi tiet | Vi du |
|---|---|---|
| Dung ten mo ta | Ten branch phai phan anh ro noi dung thay doi | feature/PROJ-101-add-user-authentication |
| Giu ngan gon | Chi 3-6 tu khoa, phan cach bang dau - |
bugfix/PROJ-202-fix-null-ref |
| Viet thuong toan bo | Khong viet hoa | feature/add-login |
Dung dau - phan cach tu |
Khong dung dau cach, underscore, hoac camelCase | fix-login-redirect |
| Bat dau bang type prefix | Luon co prefix xac dinh loai branch | feature/, bugfix/, hotfix/ |
| Lien ket ticket ID | Giup trace nguon goc thay doi | PROJ-1234-... |
Khong nen lam
| Quy tac | Vi du sai | Vi du dung |
|---|---|---|
| Khong dung ky tu dac biet | feature/add@user#auth |
feature/add-user-auth |
| Khong dung dau cach | feature/add user auth |
feature/add-user-auth |
| Khong viet hoa | Feature/Add-User-Auth |
feature/add-user-auth |
| Khong dat ten chung chung | feature/new-stuff |
feature/PROJ-101-add-payment-gateway |
| Khong dat ten qua dai | feature/PROJ-101-add-new-user-authentication-with-jwt-and-refresh-token-support-for-all-roles |
feature/PROJ-101-add-jwt-auth |
| Khong dung so thuong | feature/123 |
feature/PROJ-123-add-login |
| Khong commit truc tiep vao main/develop | — | Luon tao branch rieng |
6. Mo Hinh Git Flow
So do tong quat
main (production)
|
|--- hotfix/PROJ-xxx-fix-critical-bug
| |
| v
| (merge vao main VA develop)
|
|--- release/v1.2.0
| |
| v
| (merge vao main VA develop)
|
develop (integration)
|
|--- feature/PROJ-xxx-new-feature
| |
| v
| (merge vao develop qua Pull Request)
|
|--- bugfix/PROJ-xxx-fix-bug
| |
| v
| (merge vao develop qua Pull Request)
|
|--- chore/update-packages
|
v
(merge vao develop qua Pull Request)
Quy trinh lam viec
- Tao branch tu
develop(hoacmaincho hotfix) - Commit thuong xuyen voi message ro rang
- Push branch len remote
- Tao Pull Request (PR) de review code
- Review & Approve boi it nhat 1 thanh vien khac
- Merge vao branch dich (squash merge hoac merge commit)
- Xoa branch sau khi merge thanh cong
Lenh Git mau
# Tao branch feature moi tu develop
git checkout develop
git pull origin develop
git checkout -b feature/PROJ-101-add-login-page
# Lam viec va commit
git add .
git commit -m "feat(PROJ-101): add login page UI"
# Push len remote
git push origin feature/PROJ-101-add-login-page
# Sau khi merge PR, xoa branch local
git checkout develop
git pull origin develop
git branch -d feature/PROJ-101-add-login-page
7. Vi Du Thuc Te Trong Du An
Ap dung cho du an Clean Architecture (MyNewProjectName)
Sprint 1: Khoi tao du an
# Cau hinh co ban
chore/PROJ-001-setup-clean-architecture
chore/PROJ-002-configure-dependency-injection
chore/PROJ-003-setup-ef-core-database
chore/PROJ-004-add-serilog-logging
chore/PROJ-005-setup-docker-compose
Sprint 2: Authentication
# Tinh nang xac thuc
feature/PROJ-010-add-user-entity
feature/PROJ-011-implement-jwt-authentication
feature/PROJ-012-add-refresh-token-flow
feature/PROJ-013-implement-role-authorization
bugfix/PROJ-014-fix-token-validation-error
Sprint 3: CRUD cho SampleEntity
# Tinh nang CRUD
feature/PROJ-020-add-sample-entity-crud
feature/PROJ-021-add-pagination-support
feature/PROJ-022-implement-search-filter
bugfix/PROJ-023-fix-sample-delete-cascade
Hotfix khan cap
# Sua loi tren production
hotfix/PROJ-099-fix-sql-injection-vulnerability
hotfix/PROJ-100-patch-cors-configuration
Quy uoc Commit Message (di kem voi branch)
De dong bo voi quy uoc branch, nen dung Conventional Commits:
<type>(<scope>): <description>
| Type | Muc dich | Vi du |
|---|---|---|
feat |
Tinh nang moi | feat(PROJ-101): add login page |
fix |
Sua loi | fix(PROJ-202): resolve null reference in UserService |
chore |
Bao tri | chore: update NuGet packages |
docs |
Tai lieu | docs: update API documentation |
refactor |
Tai cau truc | refactor: simplify UserRepository queries |
test |
Them/sua test | test: add unit tests for AuthService |
style |
Format code | style: apply editorconfig rules |
ci |
CI/CD | ci: add GitHub Actions workflow |
8. Checklist Truoc Khi Tao Branch
- Ten branch co bat dau bang type prefix khong? (
feature/,bugfix/,hotfix/...) - Ten branch co chua ticket/issue ID khong? (
PROJ-1234) - Mo ta co ngan gon va ro rang khong? (3-6 tu)
- Chi dung chu thuong, so, dau
-va dau/? - Khong co ky tu dac biet, dau cach, hoac chu viet hoa?
- Branch duoc tao tu dung branch nguon? (
develophoacmain) - Da pull code moi nhat tu branch nguon truoc khi tao?
Tom Tat Nhanh
Format: <type>/<ticket-id>-<short-description>
Vi du: feature/PROJ-101-add-user-authentication
Type: feature | bugfix | hotfix | release | chore | docs | test | refactor
Chu y: - Viet thuong toan bo
- Dung dau `-` phan cach tu
- Giu ngan gon (3-6 tu)
- Khong ky tu dac biet
- Lien ket ticket ID
- Xoa branch sau khi merge