2012-11-20 39 views
5

Tôi đã được làm việc trên một chi nhánh new_feature:Git giữ chi nhánh riêng biệt trong đồng bộ

A -- B -- C -- D master 
     \ \ 
     \ 1 -- 2 -- 3 new_feature 
     \ 
     E -- F -- G port 

cơ sở mã của chúng tôi cũng có một chi nhánh cũ port nơi nhà phát triển khác chuyển sản phẩm của chúng tôi để RDBMS khác. port chưa sẵn sàng để được hợp nhất lại thành master.

Gần đây, bạn cần có new_feature hoạt động trong port. Vì vậy, tôi sáp nhập hai thành một chi nhánh mới port/new_feature, và thực hiện một số cam kết có (I, J) để làm cho nó làm việc:

A -- B -- C -- D master 
     \ \ 
     \ 1 -- 2 -- 3 -- I* -- J* -- K new_feature 
     \    \ 
     E -- F -- G -- H -- I -- J -- K* port/new_feature 
        port 

tôi cherry-nhặt I và J trở lại vào new_feature (như tôi *, J *) bởi vì chúng liên quan đến việc tái cấu trúc quan trọng mà tôi muốn có trong new_feature. Tôi cũng đã thực hiện các cam kết mới (K) đến new_feature cần được chuyển sang port/new_feature (K *).

Về sau, kế hoạch tốt nhất để giữ new_featureport/new_feature đồng bộ hóa (nhưng chỉ đối với những thay đổi mới) là gì? Tôi có nên giữ cam kết hái hoa anh đào từ cái này sang cái khác (và ngược lại) không? Hoặc là có một cách thuận tiện để làm điều này bằng cách sáp nhập?

Trả lời

1

Cherry hái rất nguy hiểm vì:

  • trùng lặp cam kết (hợp nhất tiếp theo sẽ trở nên phức tạp vì Git sẽ cố gắng tái áp dụng I-J-K trên đầu trang của ... I-J-K).
    Điều đó sẽ không xảy ra nếu bạn trả lại một chi nhánh trên đầu kia (xem "Git cherry pick and datamodel integrity"), nhưng điều đó là không thể trong trường hợp của bạn.

  • phụ thuộc hàm (xem "How to merge a specific commit in git"), nhưng tôi nghi ngờ nó không phải là một vấn đề trong trường hợp của bạn: IJ không phụ thuộc vào H, và có thể được áp dụng một cách an toàn để 3.

Chọn tiện lợi là bạn không có ý định hợp nhất cổng và tính năng mới với nhau.
Nếu đúng như vậy, hãy tiếp tục chọn cherry.

+0

Tôi lý tưởng muốn xem tất cả các chi nhánh được hợp nhất với nhau. Nhưng miễn là tôi tiếp tục làm việc trên tính năng của tôi và chủ và cổng vẫn chưa được nhấn mạnh, tôi đoán nó có ý nghĩa để giữ new_feature và port/new_feature như các nhánh riêng biệt. Cảm ơn vì những điểm tốt về việc hái hoa anh đào - Tôi mong đợi ngày mới chỉ trong tổng thể :-) – antinome

Các vấn đề liên quan