Tránh lưới Doom ™ trong Git-Flow


8

Dự án của tôi theo mô hình phân nhánh Git Flow . Phát triển xảy ra trên develop, được hợp nhất vào mastervà được gắn thẻ ở đó để phát hành. Hotfixes xảy ra trong các nhánh rẽ nhánh master.

Tuy nhiên, sự phát triển hiện tại cũng cần các hotfix, vì vậy mỗi nhánh hotfix cũng được hợp nhất vào develop.

Điều này tạo ra các biểu đồ sửa đổi rất xấu, đặc biệt là phát triển / hotfix được hợp nhất thường xuyên trong một khung thời gian ngắn:

Đồ thị sửa đổi xấu

Đây có phải là vấn đề mà mọi người thường gặp phải với Git-Flow và có cách khắc phục dễ dàng không?


2
Tần suất bạn phát hành phiên bản mới và bạn chỉ sử dụng các nhánh hotfix để sửa lỗi mà không thể đợi đến phiên bản phát hành theo lịch trình tiếp theo?
Bart van Ingen Schenau

@BartvanIngenSchenau có thể nhiều lần trong ngày, nhưng thường là cứ sau vài ngày. Các nhánh Hotfix chỉ dành cho các bản sửa lỗi không thể chờ đợi, vâng.
Hannes Struß

4
Tại sao tính thẩm mỹ của đồ thị sửa đổi là một vấn đề?

1
Không rebase loại giải quyết vấn đề này?
Cuthbert

1
@Cuthbert ở một mức độ nào đó, nhưng bạn không thể khiến chủ nhân quay trở lại phát triển mà không cần ép buộc, đây không phải là lựa chọn.
Hannes Struß

Câu trả lời:


2

Vì vậy, vấn đề của bạn là bạn đang hợp nhất mỗi sửa chữa nóng hai hoặc ba lần? (Đầu tiên để làm chủ, sau đó để phát triển, cuối cùng từ phát triển thành chủ một lần nữa)?

Vâng, đó là nó! Mặc dù vậy, không thể tránh điều đó, các hotfix phải được hợp nhất để phát triển

Chắc chắn, nhưng tại sao hợp nhất từ ​​phát triển thành chủ nếu không có gì thực sự thay đổi?

Hãy xem một trong những sự master<-develop<-hotfixhợp nhất đó: không nên có sự thay đổi thực sự trong đó (tất cả các hotfix đã được hợp nhất trực tiếp để làm chủ). Nếu không có thay đổi, đừng làm điều đó.

Trong mọi trường hợp, theo tài liệu được liên kết của bạn, việc hợp nhất duy nhất từ ​​phát triển thành chủ nên được thực hiện thông qua một nhánh phát hành. Thay vào đó, bạn giữ chủ đồng bộ với nhánh phát triển (không ổn định) của mình - không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.