9.Git Workflow & Pull Request
Chú ý: tham chiếu sang tài liệu để theo dõi rõ ràng đầy đủ hơn: https://docs.lifetex.vn/books/quy-dinh-git-workflow-va-quy-uoc-code c
9.1. Mục tiêu chương
Chương này quy định chuẩn commit và quy trình merge code nhằm:
-
Đảm bảo lịch sử thay đổi rõ ràng, dễ truy vết
-
Giảm xung đột giữa các nhóm phát triển
-
Đảm bảo chất lượng code trước khi đưa vào nhánh chính
-
Chuẩn hóa quy trình phát triển giữa Core Team và Partner
9.2. Khái niệm / phạm vi áp dụng
Quy định này áp dụng cho:
-
Tất cả repository của dự án
-
Core Team và Partner Team
-
Mọi commit và Pull Request (PR)
Quy trình phát triển tuân theo:
-
Chuẩn format commit
-
Chiến lược branch
Điều kiện merge bắt buộc
9.3. Quy định chính
9.3.1. Format commit
Tất cả commit phải theo format:
<type>: <description>
Trong đó:
-
<type>: loại thay đổi
-
<description>: mô tả ngắn gọn nội dung thay đổi
Ví dụ commit hợp lệ
feat: add planning API
fix: validate file upload
refactor: optimize planning service
docs: update API guideline
test: add unit test for planning service
chore: update dependency versions
Type hợp lệ
|
Type |
Ý nghĩa |
|
feat |
Thêm chức năng mới |
|
fix |
Sửa lỗi |
|
refactor |
Tối ưu, không đổi logic |
|
docs |
Cập nhật tài liệu |
|
test |
Thêm hoặc sửa test |
|
chore |
Thay đổi cấu hình, build, dependency |
9.3.2. Branch strategy
Hệ thống sử dụng mô hình branch chuẩn:
|
Branch |
Mục đích |
|
main |
Bản stable, dùng cho production |
|
develop |
Bản tích hợp, nơi merge các feature |
|
feature/* |
Phát triển chức năng mới |
|
fix/* |
Sửa lỗi |
Quy tắc làm việc với branch
-
Không commit trực tiếp vào main
-
Không commit trực tiếp vào develop
-
Mọi thay đổi phải qua Pull Request
-
Branch phải được đặt tên đúng quy tắc
Ví dụ tên branch hợp lệ
feature/planning-create-api
feature/document-upload
fix/login-null-pointer
fix/planning-date-validation
9.3.3. Điều kiện merge Pull Request
Pull Request chỉ được merge khi đáp ứng đầy đủ các điều kiện:
-
Build thành công
Không sửa:
common/**
config/**
Có review từ Core Team
9.4. Cách thực hiện / quy trình
Quy trình phát triển tính năng
Bước 1: Tạo branch từ develop
git checkout develop
git pull
git checkout -b feature/planning-create-api
Bước 2: Thực hiện commit theo chuẩn
git commit -m "feat: add planning create API"
Bước 3: Push branch lên remote
git push origin feature/planning-create-api
Bước 4: Tạo Pull Request vào develop
Bước 5: Core Team review
Bước 6: Nếu đạt yêu cầu → merge vào develop
Quy trình sửa lỗi
Bước 1: Tạo branch fix
git checkout develop
git checkout -b fix/planning-null-error
Bước 2: Commit
git commit -m "fix: handle null planning name"
Bước 3: Tạo PR và chờ review
9.5. Ví dụ minh họa
Trường hợp commit sai

Sai vì:
-
Không theo format chuẩn
-
Không có type
Trường hợp commit đúng
fix: handle null planning name

Trường hợp merge sai
Partner:
-
Commit trực tiếp vào develop
-
Không tạo PR
-
Không có review
→ Vi phạm quy trình.
Trường hợp merge đúng
-
Tạo branch feature/planning-api
-
Commit theo chuẩn
-
Tạo PR vào develop
-
Core Team review
-
Build pass
-
Merge

9.6. Checklist áp dụng
Trước khi tạo Pull Request:
-
Commit đúng format <type>: <description>
-
Branch đúng quy tắc feature/* hoặc fix/*
-
Không commit trực tiếp vào main hoặc develop
-
Build thành công
-
Không sửa:
-
common/**
-
config/**
-
shared entity
-
PR đã được Core Team review