📗 Docs
Git flow với dự án thực tế
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:
master
và develop
. 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:- 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.
- 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ả
master
vàdevelop
.
- 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àomaster
vàdevelop
.
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.