Branch Management

git-flow (branching model) được sử dụng tại gumi trong hơn 6 năm qua. Và hiện tại, đây là quy tắc chung bắt buộc phải sử dụng khi phát triển một dự án mới từ khi bắt đầu.

Branch type (Loại nhánh)

  • feature: Dùng để tạo các nhánh chức năng mới

  • bug: Dùng để tạo các nhánh liên quan đến bug (lỗi)

  • release: Dùng để tạo nhánh liên quan đến việc release phiên bản

  • hotfix: Dùng trong trường hơp tạo nhánh cho các lỗi xãy ra trên production

Formatting

  • Sử dụng lowercasekebab-case cho việc đặt tên nhánh

# Bad
feature/user_login_page
Bug/userResetPassword

# Good
feature/user-login-page
bug/user-reset-password
  • Sử dụng slash / để chia branch type (Loại nhánh) và branch name (tên nhánh)

# Bad
feature-user-login-page
bug_user-reset-password

# Good
feature/user-login-page
bug/user-reset-password

Naming - Đặt tên nhánh

  • Prefix tên nhánh với Backlog Item ID

# Bad
sdg-531/feature/list-job-positions

# Good
feature/sdg-531-list-job-positions

Default Branches

Có hai nhánh chính với thời gian tồn tại là vô hạn (infinite lifetime)

  • develop: cho team phát triển làm việc trên các features/bugs fix/making releases

  • master: dùng cho việc release trên môi trường production, chuyển giao sản phẩm cho khách hàng

Working Branches

Dựa trên git-flow cũng như việc phân loại các nhánh đã quy định ở trên

  • Feature / Bug branches: phải được tạo từ nhánh develop, sử dụng để làm việc với features, bug fixes

Releases Branches

  • Release branches: phải được tạo từ nhánh develop, sử dụng để testing và chuẩn bị cho việc release các nhóm chức năng đã hoàn thiện, hoặc bug fixes (nếu có) và tất cả phải được merged trở lại vào nhánh develop & master

  • Hotfix branches: được tạo ra từ nhánh master, cho việc sửa các lỗi nhỏ trên production, và tất cả phải được merged trở lại vào nhánh developmaster

  • Tên của nhánh release phải chứa các chữ số ngữ nghĩa theo Sematic Versioning

# Bad
release/1.0
release/v1.0

# Good
release/1.0.0

References

Last updated

Was this helpful?