3.7 — 5. GitHub và Pull Request
Mục tiêu bài học
- Nắm được ý chính của bài và mối liên hệ với module.
- Áp dụng được kiến thức vào bối cảnh CRM/.NET backend.
- Sẵn sàng chuyển sang bài kế tiếp với nền tảng chắc chắn.
Nội dung bài học
3.7.1 — Tại sao cần Pull Request?
PR không chỉ là "yêu cầu merge code". Đây là cơ chế code review bắt buộc trong team chuyên nghiệp — giúp phát hiện lỗi sớm, chia sẻ kiến thức và đảm bảo code đạt tiêu chuẩn trước khi vào nhánh chính.
3.7.2 — Quy trình tạo PR
# 1. Push branch lên GitHub
git push origin feature/crm-customer-notes
# 2. Vào GitHub → repo → "Compare & pull request"
# 3. Điền thông tin PR:
# - Title: feat(crm): add customer notes with attachment support
# - Description: mô tả changes, link ticket Jira, screenshot nếu có UI
# - Reviewers: chọn ít nhất 1 đồng nghiệp
# - Labels: feature / bug / hotfix
3.7.3 — Checklist PR chất lượng
Trước khi mở PR, hãy tự hỏi:
- Code có compile và pass tất cả unit test không?
- Có self-review (đọc lại diff của mình) chưa?
- Commit message có theo chuẩn Conventional Commits không?
- File
.gitignoređã loại trừappsettings.Development.json,*.user,bin/,obj/chưa? - Không có hardcode connection string, API key trong code?
3.7.4 — Squash merge — lựa chọn phổ biến cho CRM team
Squash merge gộp tất cả commit của một branch thành một commit duy nhất khi merge vào main. Giúp lịch sử main gọn, dễ đọc:
main: feat(crm): add customer notes with attachment support (#42)
Thay vì hàng chục commit lộn xộn như wip, fix typo, add test, fix again.
Bài tập áp dụng
- Tóm tắt bài học bằng ngôn ngữ của bạn.
- Liên hệ nội dung với một tình huống thực tế trong dự án.
- Đề xuất một cải tiến cụ thể sau khi học bài này.
Tự kiểm tra
- Bạn có thể giải thích lại nội dung chính trong 2 phút không?
- Bạn có ví dụ áp dụng thực tế chưa?
- Bạn biết bước tiếp theo cần học/triển khai là gì không?
Kết luận
Hoàn thành bài này giúp bạn có góc nhìn đầy đủ hơn trước khi đi tiếp trong module.
Điều hướng
- Bài trước: 3.6 — 4. Branching và Merging
- Bài tiếp theo: 3.8 — 6. Git Conflicts
- Về module: Trang mục lục