# Huong Dan Dat Ten Git Branch Trong Du An > **Tham khao:** [Git Branch Naming Conventions - Codiga](https://codiga.io/blog/git-branch-naming-conventions) --- ## Muc Luc 1. [Nguyen Tac Chung](#1-nguyen-tac-chung) 2. [Cau Truc Ten Branch](#2-cau-truc-ten-branch) 3. [Cac Loai Branch (Branch Types)](#3-cac-loai-branch-branch-types) 4. [Bang Mau Ten Branch Theo Chuc Nang](#4-bang-mau-ten-branch-theo-chuc-nang) 5. [Quy Tac Dat Ten (Good Practices)](#5-quy-tac-dat-ten-good-practices) 6. [Mo Hinh Git Flow](#6-mo-hinh-git-flow) 7. [Vi Du Thuc Te Trong Du An](#7-vi-du-thuc-te-trong-du-an) 8. [Checklist Truoc Khi Tao Branch](#8-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 ``` /- ``` 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: ``` //- ``` 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 1. **Tao branch** tu `develop` (hoac `main` cho hotfix) 2. **Commit** thuong xuyen voi message ro rang 3. **Push** branch len remote 4. **Tao Pull Request** (PR) de review code 5. **Review & Approve** boi it nhat 1 thanh vien khac 6. **Merge** vao branch dich (squash merge hoac merge commit) 7. **Xoa branch** sau khi merge thanh cong ### Lenh Git mau ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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](https://www.conventionalcommits.org/): ``` (): ``` | 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? (`develop` hoac `main`) - [ ] Da pull code moi nhat tu branch nguon truoc khi tao? --- ## Tom Tat Nhanh ``` Format: /- 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 ```