Git là gì? Sử dụng Git nâng cao chuẩn Git-flow

4.8/5 (8 Reviews)

15/11/2019

Git-Flow gồm có 2 nhánh chính là Master và Develop, 3 nhánh Phụ gồm: Feature, Release, HotFix. Tương ứng với mỗi loại Nhánh sẽ có chức năng khác nhau. Hiện tại có rất nhiều Công cụ quản trị Git hỗ trợ Git-flow tốt nhất đó là Source-Tree miễn phí nữa, còn có phí cao cấp hơn tí là GitKraken.

Git Flow là gì?

Git Flow là tên gọi của 1 tool (command) hỗ trợ branch model gọi là A successful Git branching model do Vincent Driessen đề xuất ra. Người ta thường gọi đó là model hay tool, và trong git-flow có 5 kiểu với mỗi vai trò khác nhau (tùy trường hợp mà có lúc là 6 kiểu).

Switch các kiểu với nhau để phát triển Bằng việc set trước các branch, những rule khi merge, dù có bao nhiêu developer cùng thời điểm phát triển vẫn có thể quản lý branch dễ dàng, và tránh được những vấn đề do merge Tiếp theo. Chúng ta cùng xem về các kiểu của branch có trong git-flow.

Lợi ích khi dùng git-flow

Git Flow là gì?

Git Flow đưa ra các quy ước để triển khai công việc. Nó được tổng kết qua quá trình làm việc thực tiễn của nhiều team trên thế giới hiện nay và mang lại kết quả khả quan đáng kinh ngạc. Mục đích là các nhóm công việc triển khai song song nhưng không ảnh hưởng tới nhau. Các  môi trường development, staging và production tách biệt giúp quá trình kiểm thử (QA), trả lại feedback và xử lý các issue được gọn gàng và thống nhất hơn nhiều.

Ý tưởng của nó thực ra là duy trì các nhánh branch không đổi, tức không xoá (có tính cố định) trong suốt dòng đời sản phẩm. Branch master sẽ luôn là branch chính áp dụng cho production, trong khi các branch hotfix, features hay develop cung cấp các bản để phục vụ QA và hoàn thiện trước khi được đẩy lên master.

Khác với cách thông thường tạo ra nhiều vấn đề xảy ra ngay trên production, thứ mà chúng ta hay gọi là “rút kinh nghiệm từ những sai lầm thực tiễn”, Git Flow đẩy quá trình QA vào một phần bắt buộc cho cả developer và team QA và yêu cầu sự hoàn thiện cao hơn về chất lượng đầu ra.

Trong môi trường thực tế tại LPTech thì chúng tôi sử dụng git để hạn chế những rủi ro cho các dự án thiết kế web và lập trình phần mềm quản lý bán hàng, phần mềm erp. Việc sử dụng GIT còn giúp cho vấn đề Release dự án lên server 1 cách thuận lợi và hoàn toàn tự động nhờ các công cụ CD tích hợp sẳn.

Tại sao lại chọn Git?

Đã có quá nhiều cuộc chiến nổ ra khi bàn về ưu điểm nhược điểm của Git so với các công cụ quản lý source code tập trung khác (như CVS, SVN). Là một developer, tôi cảm thấy yêu thích Git hơn. Git thực sự đã thay đổi cách suy nghĩ về merging và branching. Những ai đã từng làm việc với CVS/Subversion đều hiểu merging/branching không hề đơn giản, trong tài liệu về CVS/Subversion branching và merging chỉ được nhắc đến ở chapter cuối, dành cho các users có kinh nghiệm. Còn với Git, branching/merging là một phần trong workflow hàng ngày của bạn, được mô tả ở những phần đầu tiên trong Git book.

Tham khảo thêm: Những lợi ích của việc dùng Git

Các nhánh (Branch) trong git-flow

Git-Flow gồm có 2 nhánh chính là Master và Develop, 3 nhánh Phụ gồm: Feature, Release,HotFix. Tương ứng với mỗi loại Nhánh sẽ có chức năng khác nhau. Hiện tại có rất nhiều Công cụ quản trị Git hỗ trợ Git-flow tốt nhất đó là Source-Tree  miễn phí nữa, còn có phí cao cấp hơn tí là GitKraken.

Nhánh Master branch

Branch master là branch được tạo mới repository và tạo mặc định trong Git. Những người mới bắt đầu thường có xu hướng commit trực tiếp và branch master, nhưng trong git-flow thì ta không commit trực tiếp vào master, mà đây chỉ là branch dùng để thực hiện merge, nên chúng ta lưu ý nhé.

Git Flow là gì?

Nhánh origin/master được coi là nhánh chính với HEAD phản ánh trạng thái production-ready.

Nhánh Develop branch

Branch develop là branch trung tâm cho việc phát triển. Do với mỗi thay đổi ta lại ngắt branch feature tương ứng cho nên có thể nói đây là branch được dùng nhiều nhất trong quá trình phát triển. Cần đặt tên branch sao cho người khác có thể biết được ngay nội dung thay đổi là gì. Mỗi branch được ngắt ra để làm n ày sau khi làm xong ta lại merge vào develop, merge xong sẽ xóa nó đi.

Nhánh origin/develop được coi là nhánh chính với HEAD phản ánh trạng thái thay đổi mới nhất trong quá trình phát triển, chuẩn bị cho release tiếp theo.

Nhánh Release branch

  1. Tách từ: develop
  2. Merge vào: develop và master
  3. Naming convention: release-*

Branch release là branch dùng để release sản phẩm như đúng tên gọi của nó. Khi release sản phẩm thì có rất nhiều những task liên quan khác cần thiết nữa, những task liên quan đó sẽ được release trên branch release mà ta ngắt ra từ branch develop. Sau khi release xong, sẽ merge vào branch master và branch develop, ghi release tag vào merge commit của branch master sau đó xóa branch release đi.

Git Flow là gì?

Release branches được sử dụng để chuẩn bị cho release bản production mới. Tất cả các công việc cuối cùng trước khi release sẽ được thực hiện ở đây, ngoài ra còn để fix nốt các bugs lẻ tẻ, chuẩn bị meta-data (version number, build dates, etc..). Nhờ việc tách nhánh ra khỏi develop, chúng ta có thể tiếp tục phát triển các features cho đợt release khác một cách bình thường.

Thời điểm được lựa chọn để tách nhánh từ develop là khi develop phản ánh được trạng thái mong muốn cho việc release mới. Ít nhất lúc đó tất cả các features dành cho đợt release phải được merge vào develop rồi. Những features nhắm đến các lần release sau thì chưa được merge vào, phải đợi sau khi tách nhánh.

Chúng ta sẽ tiến hành đánh version theo rule của dự án ngay sau khi tạo release branch.

Nhánh Hotfix branch

  1. Tách từ: master
  2. Merge vào: develop và master
  3. Naming convention: hotfix-*

Khi release sản phẩm cũng có khi ta phát hiện ra bug rất nghiêm trọng, chắc hẳn mọi người cũng từng trải qua vấn đề này rồi nhỉ? Những lúc như vậy ta sẽ ngắt ra branch hotfix trực tiếp từ branch master để tiến hành sửa, sau khi sửa xong sẽ merge vào master và develop và ghi lại release tag. Sau đó sẽ xóa branch hotfix đi.

Git Flow là gì?

Hotfix branches cũng giống release branches ở chỗ được sử dụng để chuẩn bị cho việc release production mới, chỉ khác ở chỗ là ko có plan từ trước. Khi có một bug nghiêm trọng trên bản production cần được giải quyết ngay lập tức, một hotfix branch sẽ được tách ra từ master và được đánh version để nhận biết.

Ưu điểm của việc tách nhánh này ở chỗ các team members khác có thể tiếp tục công việc ở develop trong khi những người khác có thể tập trung vào fix bug của production.

Nhánh Feature branch

  1. Tách từ: develop
  2. Merge vào: develop
  3. Naming convention: tự do, ngoại trừ master, develop, release-*, hotfix-*

Feature branches (hay còn gọi là topic branches) được sử dụng để phát triển các feature mới phục vụ cho release sau này. Khi bắt đầu phát triển một chức năng, có thể chưa rõ được thời điểm chức năng đó được tích hợp vào hệ thống và release. Feature branch sẽ tồn tại trong quá trình chức năng được phát triển, cuối cùng sẽ được merge lại vào develop (khi quyết định lần release tới bao gồm chức năng đó) hoặc bị bỏ đi (khi thấy chức năng không còn cần thiết).

Git Flow là gì?

Về cơ bản thì feature branches chỉ tồn tại ở repos của developers, chứ ko phải ở origin.

Kết luận

Các bạn chắc hẳn đã nắm được bước thực hiện khi sử dụng git-flow rồi nhỉ. Nhất định hãy vận dụng thuần thục nó vào thực tế trong các dự án Thiết kế website hoặc lập trình phần mềm nhé. Tôi bổ sung thêm, trong số branch model của Git, ngoài ra còn rất nhiều các kiểu model khác như là GitHub Flow, GitLab Flow, với mỗi sắc thái ưu điểm nhược điểm riêng nên chúng ta cũng sẽ cùng tìm hiểu thêm về các model khác đó nữa nhé.

Tham khảo thêm: Những lệnh Git command hữu ích nhất bắt buộc phải biết

Điểm lợi lớn nhất của Git Flow là giúp việc theo dõi và xử lý các vấn đề nảy sinh do một tính năng, một bản fix rất dễ dàng. Quá trình review sẽ thuận tiện và quan sát được các lỗi nảy sinh trong quá trình deploy.

Tuy vậy, nếu bạn muốn tăng thời gian triển khai production thì sẽ gặp hạn chế đôi chút về mặt thời gian. Ngoài ra, việc remove các commit không đạt yêu cầu chất lượng cũng khó khăn hơn (ta không dùng cherry-pick để làm nữa).

Ở công ty LPTech, chúng tôi sử dụng Git như một công cụ quản lý dự án không thể thiếu được, Các dự án thiết kế website của chúng tôi đều sử dụng git và tích hợp  CI/CD vào dựa trên Git mà hoạt động rất hiệu quả.

 

Thông Tin Liên Hệ

ĐỀ XUẤT CHO BẠN

Bài Viết Cùng Chuyên Mục

article-img

Zalo Mini App ngành chăm sóc sức khỏe: Tối ưu vận hành phòng khám

Zalo Mini App ngành chăm sóc sức khỏe giúp tối ưu vận hành, nâng cao trải nghiệm bệnh nhân và tăng tỷ lệ tái khám. Khám phá ngay giải pháp hiệu quả.

author-avatar

Phạm Ngọc Thuý Nhi

30/03/2026

XEM CHI TIẾT
article-img

Zalo Mini App ngành gia dụng: Giải pháp bảo hành điện tử tối ưu

Zalo Mini App ngành gia dụng giúp doanh nghiệp tối ưu vận hành, quản lý khách hàng và tăng doanh thu hiệu quả. Khám phá ngay tính năng, lợi ích chi tiết.

author-avatar

Phạm Ngọc Thuý Nhi

30/03/2026

XEM CHI TIẾT
article-img

Zalo Mini App ngành thời trang: Tạo trải nghiệm mua sắm khác biệt

Zalo Mini App ngành thời trang giúp tối ưu hành trình mua sắm của khách hàng. Khám phá ngay cách triển khai để không bỏ lỡ cơ hội bứt phá doanh thu.

author-avatar

Phạm Ngọc Thuý Nhi

30/03/2026

XEM CHI TIẾT
article-img

Zalo Mini App Ngành F&B: Nâng Tầm Lợi Thế Cạnh Tranh

Khám phá cách Zalo Mini App ngành F&B giúp doanh nghiệp bứt phá khả năng cạnh tranh và giữ chân khách hàng hiệu quả. Xem ngay.

author-avatar

Phạm Ngọc Thuý Nhi

26/03/2026

XEM CHI TIẾT
article-img

Zalo Mini App Bất Động Sản: Giải Pháp Đột Phá Doanh Thu 2026

Chuyển đổi số ngành địa ốc với Zalo Mini App bất động sản. Giải pháp giúp doanh nghiệp tiếp cận 80 triệu người dùng. Xem ngay.

author-avatar

Phạm Ngọc Thuý Nhi

25/03/2026

XEM CHI TIẾT
article-img

Zalo Mini App Ngành Trang Sức: Đón Sóng Tăng Trưởng Thị Trường

Khám phá cách Zalo Mini App ngành trang sức hỗ cập doanh nghiệp chăm sóc khách hàng và đột phá doanh thu. Xem ngay.

author-avatar

Phạm Ngọc Thuý Nhi

24/03/2026

XEM CHI TIẾT

Chất Lượng Sản Phẩm Tạo Nên Uy Tín Doanh Nghiệp.

Tầm nhìn của LPTech mong muốn trở thành công ty Công nghệ không chỉ phát triển tại thị trường Việt Nam mà còn mở rộng ra cả khu vực Asia. Vậy nên, mỗi một công việc mà LPTech làm đều sẽ ảnh hưởng đến thương hiệu của công ty ở hiện tại lẫn tương lai. Chính vì thế, quý khách hàng có thể yên tâm về chất lượng website được thiết kế tại LPTech.

LIÊN HỆ NGAY
bgQuality

THÔNG BÁO

Tin nổi bật

notification-img
Thông báo lịch nghỉ lễ Mùng 10 tháng 3, 30/4 và 1/5 năm 2026

Công ty TNHH Thương mại Điện tử Công nghệ LP xin thông báo đến Quý Khách hàng, Đối tác và toàn thể Nhân viên lịch nghỉ lễ 10/3, 30/4 và 1/5 năm 2026

notification-img
Thông báo nghỉ Tết Nguyên Đán 2026

LPTech kính chúc Quý Khách hàng, Quý Đối tác và toàn thể nhân sự một năm mới an khang, nhiều niềm vui, đủ đầy yêu thương và vững bước thành công.

notification-img
Thông báo lịch nghỉ Tết Dương lịch 2026

Chào đón năm mới 2026, LPTech xin gửi đến Quý Khách hàng, Đối tác và toàn thể nhân viên lời chúc sức khỏe, bình an và thành công, đồng thời thông tin về lịch nghỉ Tết Dương lịch 2026 của Công ty.

notification-img
Vũng Tàu: Du lịch công ty 2 ngày 1 đêm cùng LPTech

Giữa những ngày cuối năm bận rộn, cả team rủ nhau đi trốn một chuyến về Vũng Tàu để đổi gió và tận hưởng biển xanh. Một chuyến đi đầy ắp kỉ niệm.

notification-img
Thông báo lịch nghỉ du lịch thường niên 2025

Một chuyến du lịch ngắn ngày nhưng đầy năng lượng này sẽ giúp đội ngũ LPTech tạm rời nhịp làm việc, nghỉ ngơi và sẵn sàng cho những mục tiêu mới.

notification-img
Tết Trung Thu 2025 – Mùa trăng đoàn viên, mùa yêu thương lan tỏa

Giữa sắc đèn lung linh và hương bánh nồng nàn, Tết Trung Thu trở về như bản nhạc dịu êm của đoàn viên, hạnh phúc và sự gắn kết.

notification-img
LPTech chào mừng Quốc khánh 2/9 – 80 năm tự hào dân tộc

Kỷ niệm Quốc khánh 2/9 – LPTech tự hào đồng hành cùng tinh thần dân tộc, tổ chức nhiều hoạt động nội bộ ý nghĩa để gắn kết tập thể và lan tỏa giá trị yêu nước.

notification-img
Thông báo lịch nghỉ lễ Quốc khánh 2025

LPTech kính chúc Quý khách hàng, Đối tác và toàn thể nhân viên có một kỳ nghỉ lễ vui bên gia đình và người thân!