source: update Base rule Agent
This commit is contained in:
@@ -1,334 +1,6 @@
|
||||
# Huong Dan Dat Ten Git Branch Trong Du An
|
||||
# Git Branch Rules
|
||||
|
||||
> **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
|
||||
|
||||
```
|
||||
<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
|
||||
|
||||
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>(<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? (`develop` hoac `main`)
|
||||
- [ ] 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
|
||||
```
|
||||
- **Format:** `<type>/<ticket-id>-<short-description>` (e.g., `feature/PROJ-101-add-login`)
|
||||
- **Types:** `feature` (new feature), `bugfix` (dev fix), `hotfix` (prod fix), `chore` (maintenance), `docs`, `refactor`.
|
||||
- **Naming:** 3-6 lowercase words, separated by hyphens `-`. No special chars.
|
||||
- **Workflow:** Branch from `develop` (or `main` for hotfix) -> PR -> Merge -> Delete branch.
|
||||
|
||||
Reference in New Issue
Block a user