Giải thích Workflow theo kiểu Gitflow

Gitflow được thiết kế cho các dự án phần mềm release theo version, theo kiểu version release ấy. Đây là quy trình làm việc, nó sẽ không thêm các tính năng mới cho Git, nó chỉ định rất rõ vai trò của mỗi branch, tại sao, khi nào các branch sẽ tương tác qua lại với nhau.

Chúng ta cùng nghiên cứu mục đích của từng branch

Develop

Nếu master để lưu trữ lịch sử những bản release chính thức, develop mục đích như một branch cho việc tích hợp các feature branch. Trên master branch chúng ta sẽ thêm tag theo từng version release.

Feature Branch

Mỗi feature mới sẽ có branch riêng, tên branch sẽ được đặt theo feature đang phát triển, Feature branch xem develop branch như là branch cha của nó. Khi đã hoàn tất feature này, chúng ta merge nó lên trên develop, không bao giờ tương tác lên master, đồng thời xóa branch này.

Release Branch

Khi tất cả feature cần thiết đã hoàn thành để có thể release. Chúng ta tạo thêm branch release, tên branch là tên của của release version. Tạo branch này cũng đồng nghĩa với việc bắt đầu một vòng phát triển mới, không thêm các tính năng mới nữa, mà tập trung vào bug fix, tạo document này kia. Khi đã hoàn tất tiếp tục merge lên master

Bằng cách này, chúng ta có thể tách một team để đẩy việc đưa ra release và một team khác tiếp tục phát triển tính năng cho release tiếp theo.

Sau khi được merge vào masterdevelop, có thể xóa branch release.

Hotfix

Rất giống với releasefeature trừ việc nó sẽ dựa trên master chứ không phải develop, để sửa các lỗi trên production. Đây là branch duy nhất fork trực triếp từ master. Một khi sửa xong, thì merge vào cả master* và develop** rồi xóa

Bên cạnh Gitflow, một số quy trình làm việc khác cũng khá phổ biến với Git là: Centralized Workflow, Feature branching, Forking Workflow

Để làm việc với GitFlow bằng SourceTree, có thể xem video tuts hướng dẫn trên youtube https://www.youtube.com/watch?v=z53JJ7P78Vc

Link bài gốc