Giả sử tôi đang viết hai phiên bản khác nhau của cùng một phần mềm / chương trình / ứng dụng / tập lệnh và lưu trữ chúng dưới sự kiểm soát phiên bản. Phiên bản đầu tiên là phiên bản "Cơ bản" miễn phí, trong khi phiên bản thứ hai là phiên bản "Premium" trả phí, lấy mã cơ sở của phiên bản miễn phí và mở rộng dựa trên nó với một vài tính năng bổ sung giá trị gia tăng. Bất kỳ bản vá, sửa lỗi hoặc tính năng mới nào cũng cần tìm đường vào cả hai phiên bản.
Tôi hiện đang xem xét việc sử dụng master
và develop
các nhánh cho codebase chính (phiên bản miễn phí) dọc theo bên master-premium
và develop-premium
các nhánh cho phiên bản trả phí. Khi một thay đổi được thực hiện cho phiên bản miễn phí và được sáp nhập vào master
chi nhánh ( develop
dĩ nhiên sau khi kiểm tra kỹ lưỡng ), nó sẽ được sao chép sang develop-premium
chi nhánh thông qua cherry-pick
lệnh để kiểm tra thêm và sau đó được sáp nhập vào master-premium
.
Đây có phải là quy trình làm việc tốt nhất để xử lý tình huống này? Có bất kỳ vấn đề tiềm ẩn, hãy cẩn thận, hoặc cạm bẫy để nhận thức? Có một chiến lược phân nhánh tốt hơn những gì tôi đã đưa ra?
Phản hồi của bạn được đánh giá cao!
PS Đây là một tập lệnh PHP được lưu trữ trong Git, nhưng câu trả lời nên áp dụng cho bất kỳ ngôn ngữ hoặc VCS nào.