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: : Trong đó: : loại thay đổi : 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/** Không sửa shared entity 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 : 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