1. Git Flow là gì?

Git Flow là một mô hình quản lý nhánh Git được phát triển bởi Vincent Driessen (2010). Nó giúp team phát triển phần mềm tổ chức code theo các nhánh khác nhau, phù hợp với các giai đoạn phát triển: tính năng mới, sửa lỗi, phát hành sản phẩm.

Ưu điểm của Git Flow:

  • Quản lý code dễ dàng, tránh xung đột.
  • Phù hợp với dự án lớn, nhiều thành viên.
  • Dễ dàng triển khai release, hotfix.
  • Chuẩn hóa workflow cho team.

2. Các nhánh cơ bản trong Git Flow

Git Flow có 5 loại nhánh chính:

1. main (hoặc master)

  • Chứa mã nguồn ổn định, luôn sẵn sàng release.
  • Không commit trực tiếp, chỉ merge từ nhánh develop hoặc hotfix.

2. develop

  • Nhánh chính để phát triển tính năng.
  • Tất cả feature branch merge vào đây trước khi release.

3. feature/*

  • Mỗi tính năng mới tạo nhánh riêng từ develop.
  • Tên nhánh ví dụ: feature/login hoặc feature/payment-gateway.
  • Khi hoàn tất, merge về develop.

4. release/*

  • Chuẩn bị release, fix bug nhỏ, cập nhật version.
  • Tạo từ develop khi sẵn sàng phát hành.
  • Merge vào cả maindevelop.

5. hotfix/*

  • Sửa lỗi nghiêm trọng trên main.
  • Tạo nhánh từ main và merge trở lại main + develop.

3. Quy trình làm việc Git Flow chuẩn cho team 2025

Bước 1: Khởi tạo Git Flow

git flow init
  • Chọn nhánh mặc định: main cho production, develop cho phát triển.

Bước 2: Tạo nhánh tính năng

git flow feature start <tên-feature>
  • Phát triển tính năng trên nhánh này.
  • Khi xong:
git flow feature finish <tên-feature>
  • Merge tự động vào develop.

Bước 3: Chuẩn bị release

git flow release start <version>
  • Fix bug, update tài liệu, version number.
  • Khi sẵn sàng:
git flow release finish <version>
  • Merge vào maindevelop, tạo tag release.

Bước 4: Hotfix

git flow hotfix start <tên-hotfix>
  • Sửa lỗi nghiêm trọng.
  • Khi xong:
git flow hotfix finish <tên-hotfix>
  • Merge vào maindevelop, tạo tag hotfix.

4. Lưu ý khi áp dụng Git Flow cho team

  • Commit thường xuyên và rõ ràng:
    • Format: type(scope): message, ví dụ: feat(login): add login API.
  • Code review:
    • Dùng Pull Request để review trước khi merge vào develop.
  • Cập nhật nhánh:
    • Luôn pull develop mới nhất trước khi merge feature.
  • Sử dụng tagging:
    • Tạo tag cho mỗi release để tracking version dễ dàng.

5. Kết luận

Git Flow là quy trình làm việc chuẩn cho team, đặc biệt phù hợp với dự án lớn hoặc team nhiều thành viên. Việc áp dụng đúng Git Flow giúp quản lý code hiệu quả, giảm xung đột, và chuẩn hóa release. Năm 2025, với các dự án Agile và CI/CD, Git Flow vẫn là lựa chọn hàng đầu để triển khai dự án bền vững và chuyên nghiệp.