Git Flow và Tầm Quan Trọng của Nó
Song hành cùng với việc sử dụng GIT, những lập trình viên khi bắt đầu va chạm với môi trường làm phần mềm thực tế cũng cần phải nắm cho mình một kiến thức tốt về GIT FLOW.
Git Flow là gì và Tại sao Nó Quan Trọng?
Đầu tiên, hãy đến với khái niệm về GIT FLOW.
Hiểu đơn giản, GIT FLOW là một quy trình làm việc giúp quản lý và tổ chức mã nguồn dựa trên hệ thống phân nhánh của GIT. Các nhánh trong GIT FLOW được phân chia rõ ràng, giúp lập trình viên có thể quản lý các phiên bản và quy trình phát triển một cách hiệu quả. Quy trình này không chỉ đảm bảo an toàn khi hợp nhất mã mà còn giảm thiểu rủi ro cho dự án, đặc biệt là các dự án dài hạn với nhiều lập trình viên cùng phát triển.
Mô Hình Git Flow
Là một lập trình viên web, mình đã có cơ hội áp dụng GIT FLOW trong một số dự án, từ nhỏ đến lớn. Dưới đây là các khái niệm chính mà mình đã đúc kết:
Mô hình Git Flow với các nhánh phân chia rõ ràng theo tính năng (Nguồn devopsdoc.osb.group)
Các Nhánh Chính trong Git Flow
main
: Là nhánh mặc định khi khởi tạo repo mới. Nhánh này chứa phiên bản ổn định của phần mềm. Mỗi commit lênmain
đều là một cập nhật tính năng.release
: Được tạo từdevelop
để thực hiện các bước kiểm thử trước khi phát hành lênmain
. Nhánh này chứa mã nguồn chính thức của phiên bản sắp ra mắt.develop
: Là nhánh chính trong quá trình phát triển, nơi các chức năng mới được hoàn thiện trước khi được đẩy lênrelease
.feature
: Được tạo từdevelop
để phát triển các chức năng riêng biệt. Sau khi hoàn thành, lập trình viên sẽ hợp nhất code từ nhánhfeature
vàodevelop
.hotfix
: Được tạo ra khi cần sửa lỗi khẩn cấp trênmain
và hợp nhất lại vào cảmain
vàdevelop
.
Ví Dụ Thực Tế Về Git Flow trong Dự Án
Trong một dự án cụ thể tại công ty, team được chia như sau:
- Dev: Phúc, Việt Anh, Thái
- DevOps: Triệu
Quy Trình Thực Hiện Dự Án
-
Khởi tạo dự án:
- Phúc tạo nhánh
develop
từ nhánhmain
- nhánh mặc định khi khởi tạo repo.
- Phúc tạo nhánh
-
Tạo nhánh
feature
:- Phúc, Thái, Việt Anh mỗi người tạo một nhánh
feature
riêng từ nhánhdevelop
với tên theo chức năng:feature/<tên chức năng>
.
- Phúc, Thái, Việt Anh mỗi người tạo một nhánh
-
Hoàn thiện và merge nhánh
feature
:- Sau khi hoàn thành chức năng, Phúc, Thái, Việt Anh lần lượt merge code vào nhánh
develop
.
- Sau khi hoàn thành chức năng, Phúc, Thái, Việt Anh lần lượt merge code vào nhánh
-
Chuẩn bị phiên bản phát hành:
- Anh Xuân, quản lý dự án, quyết định phát hành phiên bản đầu tiên. Triệu tạo nhánh
release/<version>
từdevelop
, tiến hành build dự án và deploy lên môi trường test.
- Anh Xuân, quản lý dự án, quyết định phát hành phiên bản đầu tiên. Triệu tạo nhánh
-
Kiểm tra và sửa lỗi nhỏ trên
release
:- Triệu kiểm tra, sửa một số bug nhỏ, sau đó merge code từ
release
vào cảmain
vàdevelop
.
- Triệu kiểm tra, sửa một số bug nhỏ, sau đó merge code từ
-
Triển khai phiên bản đầu tiên:
- Phiên bản
version 1.xx
ra đời và chạy trên môi trường thực.
- Phiên bản
-
Xử lý yêu cầu thay đổi nhanh với
hotfix
:- Dự án đang chạy ổn định, nhưng anh Xuân yêu cầu thay đổi giao diện một nút. Phúc tạo nhánh
hotfix/btn-warning
, sửa button, và merge lại vàomain
vàdevelop
.
- Dự án đang chạy ổn định, nhưng anh Xuân yêu cầu thay đổi giao diện một nút. Phúc tạo nhánh
-
Cập nhật và triển khai:
- Sau khi hoàn tất, phiên bản cập nhật mới được deploy lên production, nâng cao trải nghiệm người dùng.
Kết Luận
Kết thúc ví dụ thực tế trên, hy vọng rằng bạn đã có cái nhìn rõ ràng hơn về cách Git Flow hoạt động. Từ việc quản lý các feature
, xử lý lỗi khẩn cấp hotfix
, cho đến phát hành các phiên bản cập nhật release
, quy trình này giúp nhóm lập trình làm việc hiệu quả và đảm bảo sự ổn định của dự án. Nắm bắt quy trình Git Flow không chỉ giúp lập trình viên phối hợp tốt trong nhóm mà còn tạo ra một sản phẩm chất lượng và dễ dàng mở rộng. Mong rằng những kiến thức này sẽ hữu ích cho công việc của bạn!
Chúc bạn thành công và cảm ơn đã đọc bài viết!
Top comments (0)