📗 Docs

Git flow với dự án thực tế

date
Aug 6, 2023
slug
learn
author
status
Public
tags
Docs
Git
summary
Git flow with project multi member
type
Post
thumbnail
improved-git-flow-2.png
category
📗 Docs
updatedAt
Aug 6, 2023 07:56 AM

Git-flow với dự án thực tế

1. Giới thiệu

Có lẽ tất cả các bạn lập trình viên đều biết về git, github, … các công cụ quản lý code khác. Nhưng có một vấn đề mà hầu như mọi người rất hay gặp phải đó là khi một mình mình dev 1 repo thì thấy rất mượt mà, nhưng cho tới khi có 2, 3, … rất nhiều người cùng tham gia code một repo đó thì sẽ gặp rất nhiều vấn đề. Đó là lí do mà Git-FLow được sinh ra. Trong bài viết hôm nay, chúng ta sẽ đi tìm hiểu về Git-Flow và cụ thể là Git-flow với một dự án Open-source mình đang tham gia cùng các anh em coder của mình trên github.

2. Git-Flow

Git Flow là một mô hình phân nhánh được sử dụng rộng rãi và có cấu trúc nhằm cải thiện sự hợp tác và tối ưu quá trình phát triển phần mềm. Được phát triển bởi Vincent Driessen, Git Flow cung cấp một tập hợp các quy ước và hướng dẫn để quản lý các nhánh trong một kho lưu trữ Git. Nó cung cấp một phương pháp rõ ràng và có tổ chức để quản lý phiên bản, cho phép các nhóm làm việc một cách liền mạch trên nhiều tính năng, phiên bản và sửa lỗi cấp bách cùng một lúc.
Ở cốt lõi, Git Flow bao gồm hai nhánh chính: masterdevelop. Nhánh master chứa mã nguồn ổn định và sẵn sàng cho sản phẩm, trong khi nhánh develop phục vụ như nhánh tích hợp cho quá trình phát triển liên tục. Ngoài các nhánh chính này, Git Flow giới thiệu một số loại nhánh khác, bao gồm:
  1. Feature Branches: Những nhánh này được tạo ra để phát triển tính năng hoặc cải tiến mới. Chúng phát triển từ nhánh develop và được gộp lại khi tính năng hoàn thành.
  1. Release Branches: Những nhánh phiên bản được sử dụng để chuẩn bị mã nguồn cho một phiên bản mới. Chúng cho phép sửa lỗi và kiểm tra cuối cùng trước khi gộp vào cả masterdevelop.
  1. Hotfix Branches: Nhánh sửa lỗi cấp bách giải quyết các vấn đề quan trọng trong mã nguồn sản xuất. Chúng được tạo ra từ nhánh master, và sau khi sửa lỗi hoàn thành, chúng được gộp lại cả vào masterdevelop.
Bằng cách tuân thủ mô hình Git Flow, các nhóm phát triển có thể duy trì sự tách biệt rõ ràng của nhiệm vụ, cho phép làm việc tập trung vào các tính năng cụ thể mà không làm xáo trộn tính ổn định của mã nguồn chính. Tiếp cận này cải thiện chất lượng mã nguồn, đơn giản hóa việc hợp tác và đảm bảo quy trình kiểm soát phiên bản được cấu trúc tốt.
Tóm lại, Git Flow cung cấp một khung làm việc có hệ thống khuyến khích sự hợp tác hiệu quả, giảm xung đột và tạo điều kiện thuận lợi cho chu kỳ phát hành phần mềm mượt mà hơn. Chiến lược nhánh xác định của nó đã trở thành một thực hành tiêu chuẩn đối với nhiều nhóm phát triển, góp phần vào việc quản lý dự án có tổ chức và kiểm soát.