Chúng tôi đã áp dụng mô hình phân nhánh được đề xuất bởi Vincent Driessen và chúng tôi thực hiện gần như mọi thứ như ông đã mô tả trong số article của mình.Tại sao hợp nhất các chi nhánh tính năng vào các nhánh phát hành là một ý tưởng tồi?
Chỉ khi nói đến xử lý các nhánh phát hành, chúng tôi lệch một chút.
Vincent đề xuất phát triển các tính năng trong các nhánh được phân nhánh từ nhà phát triển. Khi quyết định các tính năng nào được đưa vào bản phát hành tiếp theo, chúng sẽ được hợp nhất trở lại vào nhà phát triển và một nhánh phát hành được tạo ra từ nó.
Sau đó, chi nhánh tính năng chỉ nên được sử dụng để thử nghiệm và sửa lỗi. Khi bản phát hành được triển khai để phát hành, chi nhánh phát hành sẽ được hợp nhất trở lại với nhà phát triển và chủ.
Chúng tôi làm gì thay vì là để hợp nhất các tính năng trực tiếp vào chi nhánh phát hành:
Tôi cảm thấy rằng đây không phải là cách nó nên được thực hiện và tôi đang cố gắng để nghĩ đến trường hợp này thực sự có thể làm cho mọi thứ phức tạp hơn.
Một tôi có thể nghĩ ra như sau:
Hãy nói rằng một Tính năng mới c được xây dựng dựa trên Feature một, mà đã được sáp nhập vào một chi nhánh phát hành. Trước tiên, tôi phải hợp nhất chi nhánh phát hành vào nhà phát triển để có thể tạo chi tiết mới Chi tiết c từ nhà phát triển.
Có trường hợp nào khác mà mô hình phân nhánh này có thể khiến mọi việc phức tạp hơn không?
@downvoters vui lòng để lại nhận xét để cải thiện chất lượng câu hỏi của tôi :) Tiêu đề có gây hiểu lầm không? – Zounadire
Thành thật mà nói, trả lời "Làm thế nào mô hình này có thể làm cho mọi thứ trở nên phức tạp?" giống như trả lời "Có thể mã hóa sai trong Java?" Mô hình này là nhiều hơn hoặc ít tiền phạt, trừ khi bạn thư giãn các giả định của nó về cam kết ngược dòng và hạ lưu và cơ sở hợp nhất. Nhưng sau đó một lần nữa, đó là sự thật của * mọi mô hình phân nhánh *. – Christopher