Dòng Git trong mô hình ban đầu của nó không nói về các phiên bản chính được hỗ trợ cùng một lúc. Nó không mô tả một mô hình, nơi bạn có các phiên bản sau đây trong sản xuất:
- 7.1.5: Hai khách hàng đang sử dụng này
- 8.2.3: Ba khách hàng đang sử dụng này
- 9.0.0: Đây là phiên bản chính tiếp theo mà bạn hiện đang làm việc.
Trong luồng Git, chi nhánhchính là phiên bản hiện tại của bạn được hỗ trợ, phát hành, mọi thứ khác cũ và được xem là cũ. Đã nói rằng, và vì chúng tôi đang ở trong tình trạng tương tự, nơi chúng tôi phải hỗ trợ nhiều phiên bản chính cùng một lúc (ít nhất một phiên bản chúng tôi cung cấp sửa lỗi và một trong những nơi chúng tôi cung cấp các tính năng mới), chúng tôi đã đưa ra như sau:
- phát triển và chủ: đây là những chi nhánh cho công việc hiện tại. Bất cứ điều gì mà đi vào phiên bản lớn tiếp theo được thực hiện ở đây.
- Một khi chúng ta làm một phiên bản ổn định mới (ví dụ 7.3.0), chúng tôi tạo ra các chi nhánh sau:
- 7.3/phát triển
- 7.3/master
Những chi nhánh giờ đây trở thành chi nhánh phát triển và chi nhánh chính cho bản phát hành được hỗ trợ này. Mọi bản sửa lỗi chúng tôi cần thực hiện trên v7.3.0 được thực hiện trong chi nhánh 7.3/phát triển và sau khi chúng tôi tạo bản phát hành v7.3.1, nó được thực hiện trên 7.3/phát triển và 7.3/master.
Những thay đổi mà cần phải được thực hiện trong cả hai phát triển chi nhánh thường cherry chọn kỹ lưỡng, vì chúng ta không muốn kết hợp các tính năng mới từ phát triển thành một già đi, nhưng vẫn duy trì phát triển chi nhánh.
Quá trình này mất một chút thiết lập, nhưng nó hoạt động khá tốt và miễn là bạn nhớ tạo các nhánh cần thiết khi bắt đầu làm việc trên phiên bản ổn định tiếp theo, không quá nhiều chi phí.
Theo Git Flow, bạn sẽ không sửa được 7.1.5 chút nào; đã quá muộn rồi. Thay vào đó, bạn sẽ tạo một nhánh hotfix xuất phát từ bản phát hành mới nhất của bạn (8.1.3), sửa lỗi ở đó và sau đó hợp nhất nhánh hotfix đó thành chính, do đó tạo bản phát hành mới (8.1.4?). Xem [cam kết màu đỏ trên sơ đồ nvie] (http://nvie.com/posts/a-successful-git-branching-model/). – Jubobs
Đôi khi khách hàng muốn ở lại trên một phiên bản cụ thể của hệ thống của chúng tôi, nhưng đi từ 7,0 -> 8,0 sẽ giới thiệu những thay đổi lớn. Toàn bộ quá trình tạo ra một hotifx và sáp nhập để làm chủ/phát triển có ý nghĩa, tôi chỉ cảm thấy như đó là ví dụ phù hợp nhất. Tôi chỉ không chắc chắn làm thế nào để hỗ trợ khách hàng sử dụng các phiên bản chính trước đó của hệ thống của chúng tôi. – Robert
Mô hình Git-Flow không đưa ra các điều khoản cho trường hợp đó. – Jubobs