Code giỏi là một chuyện, nhưng phối hợp code với 50 người khác mà không gây ra thảm họa lại là chuyện khác. Có 3 quy trình (workflow) phổ biến mà bạn cần biết.
1. Gitflow (Kinh điển và Chắc chắn)
Gitflow chia hệ thống thành các nhánh có nhiệm vụ riêng biệt:
- master/main: Chứa code đã release (stable).
- develop: Nơi tổng hợp các tính năng mới.
- feature/*: Nhánh cho từng tính năng nhỏ. Đẻ ra từ
develop, merge vềdevelop. - hotfix/*: Sửa lỗi gấp trên
master. - release/*: Chuẩn bị cho đợt release mới.
Dùng khi nào?: Dự án có chu kỳ release dài (theo tháng/quý), yêu cầu tính ổn định cực cao (Ngân hàng, Y tế).
2. GitHub Flow (Đơn giản và Linh hoạt)
GitHub Flow bỏ qua develop, mọi thứ đều xoay quanh main.
- Tạo nhánh từ
main. - Commit và push lên server.
- Mở Pull Request (PR) để thảo luận và review code.
- Merge về
mainvà deploy ngay lập tức.
Dùng khi nào?: Dự án SaaS, Startup cần ra tính năng nhanh, deploy nhiều lần trong ngày.
3. Trunk-based Development (Tầm nhìn Senior)
Đây là workflow yêu thích của các ông lớn (Google, Meta). Tất cả developer đều push trực tiếp (hoặc merge PR cực ngắn) vào một nhánh duy nhất (Trunk - thường là main).
- Quy tắc: Code phải được chia nhỏ thành từng commit hoạt động được trong vòng vài giờ.
- Kỹ thuật kèm theo: Bắt buộc phải có Feature Toggles (Cờ tính năng) để ẩn đi những code chưa hoàn thiện dù nó đã nằm trên
main.
Dùng khi nào?: Team có trình độ cao, hệ thống CI/CD cực mạnh và test phủ kín 90%.
Bảng so sánh nhanh
| Tiêu chí | Gitflow | GitHub Flow | Trunk-based |
|---|---|---|---|
| Độ phức tạp | Cao | Thấp | Trung bình |
| Tốc độ Release | Chậm | Nhanh | Cực nhanh |
| Rủi ro Conflict | Cao (khi merge develop) | Thấp | Cực thấp |
| Phù hợp | Project lớn, kế hoạch cứng | Web app, Startup | Team Expert, CI/CD mạnh |
Kết luận
Không có workflow tốt nhất, chỉ có workflow phù hợp nhất.
- Nếu bạn mới bắt đầu: GitHub Flow.
- Nếu dự án cần quản lý phiên bản chặt chẽ: Gitflow.
- Nếu bạn muốn đạt trình độ DevOps đỉnh cao: Trunk-based.