Phát triển

Vòng đời Git là gì? Tìm hiểu về Git flow trong dự án

Lê Hoàng 10-04-2024
Vòng đời Git là gì? Tìm hiểu về Git flow trong dự án

Sau bài viết trước, chúng ta đã có thể phần nào hiểu được các khái niệm của Git, vì vậy trong bài này chúng ta sẽ chỉ sử dụng đến các ví dụ có liên quan từ bài trước và không đi tìm hiểu lại chúng nữa nhé. Giờ thì cùng bắt đầu thôi nào.

1. Vòng đời là gì? Vòng đời Git bắt đầu và kết thúc ra sao?

Vòng đời của một Git được gọi với từ ngữ chuyên ngành là một Git Flow. Git Flow được Vincent Driessen đưa ra nhằm cải thiện quá trình làm việc cùng Git. Thực chất, đấy là cách chia nhánh và merge nhánh vào khi hoàn thành một tập hợp tính năng hoặc fix.

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. 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), feedback và xử lý các issue được gọn gàng và thống nhất hơn.

Các branch chính:

  • master: là branch tồn tại xuyên suốt quá vòng đời của phần mềm được tạo mặc định trong Git khi ta tạo repository.
  • develop: là nơi các develop phát triển chính branch luôn tồn tại song song với master.
  • feature: là nhánh được tách từ develop nhằm mục đích xây dựng các tính năng riêng mà không phụ thuộc vào nhau.
  • release: là nhánh tách từ develop để kiểm tra và fix bug chuẩn bị cho việc ra mắt sản phẩm.
  • hotfix: là nhánh tách từ master để fix gấp những bug còn tồn đọng mà trên release chưa xử lý hết .

2. Một vòng đời của Git có gì đặc biệt

  • Có lẽ ở phần đầu tiên, chúng ta cũng đã nắm được ý tưởng và cách sẽ thực hiện một Git Flow rồi. Dưới đây sẽ là các step chi tiết để đạt được điều đó.
  • Đầu tiên, bạn sẽ clone một repository Git để làm việc
  • Sau đó, bạn chỉnh sửa bản sau của mình, phát triển và thay đổi đó
  • Kiểm tra lại các thay đổi của mình trước khi commit
  • Commit và push các thay đổi của mình tới remote repository
  • Sau khi commit và sửa lại các lỗi sai, bạn có thể commit lại và merge chúng vào branch master của mình.

3. Tìm hiểu về một số Git Flow được nhiều doanh nghiệp lớn sử dụng

Một vòng đời của Git sẽ được áp dụng vào thực tiễn bằng việc sử dụng các GitFlow với các quy tắc và định nghĩa tên nhánh một cách tường minh.

Đây sẽ là bốn Git Flow phổ biến nhất hiện nay để bạn có thể tham khảo:

3.1. Centralized

Đây là workflow cơ bản nhất, với một branch duy nhất, mọi người trong team đều làm việc chung trên này. Nó giống hệt với SVN nói riêng và các centralized version control khác. Vậy nên nó không tận dụng được hết những tính năng cũng như ưu điểm của Git. Flow này áp dụng cho những team mới áp dụng Git, những dự án nhỏ, có vòng đời phát triển ngắn. Hoặc flow này có thể áp dụng như giai đoạn trung gian của việc chuyển dự án từ SVN sang Git.

>>> Xem thêm bài viết:

Hướng dẫn cài đặt unix linux 

Hướng dẫn cài đ ặt k8s Kubenertes Cluster

Scheduling - Lập lịch trên K8s

3.2. Feature branch workflow

Nếu như Centralized Workflow giúp các bạn quen với các command của Git, cũng như quy trình pull => add => commit rồi push thì flow này sẽ giúp các bạn thấy được sự khác biệt của Git so với SVN. Flow này sẽ hỗ trợ rất nhiều trong teamwork, khi mà nhiều developer cùng phát triển nhiều tính năng trong 1 dự án cùng lúc.

3.3. Gitflow workflow

So với feature branch, thì flow này sẽ có nhiều hơn một branch là base branch. Như ở hình trên sẽ có hai branch có vai trò này. Nó thích hợp cho việc bạn sẽ có một branch cho server production, một branch cho việc maintenance mà vẫn có thể tận dụng được các lợi ích của Feature branch flow như pull request…

>>> Xem thêm bài viết:

Hướng dẫn cài đặt unix linux 

Hướng dẫn cài đặt k8s Kubenertes Cluster

Scheduling - Lập lịch trên K8s

3.4. Forking workflow: Tách ra để đi nhanh hơn, hợp lại để đi xa hơn

Nhìn vào ảnh trên mọi người có thể hiểu ba cái hộp database bên trên là ba cái server-side repository khác nhau. Có nghĩa là khác với ba flow ở trên tất cả developer làm việc trên local nhưng dùng chung một server side repos. Ở flow này, mỗi người sẽ có một server side repos khác nhau và thoải mái phát triển trên đó. Điểm khác biệt ở đây là mọi người có thể tự do lựa chọn việc đi theo một con đường riêng, hoặc quy tụ với con đường chính (khi merge repos chính) sau khi có một quãng đường tự đi. Cũng có thể đi chung đường với một dev khác (merge repos của họ vào của mình) mặc kệ repos chính nó đang có gì.

Kết

Git Flow là một phần rất quan trọng trong việc bạn sử dụng Git để quản lý source code và tài nguyên con người của mình như thế nào. Với một quy trình chuẩn chỉ, chúng ta hoàn toàn có thể tăng cường hiệu quả và hiệu suất công việc của mình và toàn bộ dự án.


Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.

Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy,  Adavigo, bTaskee…

Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY: