2012-11-20 10 views
5

pracuję na oddziale new_feature:Git prowadzenia odrębnych oddziałów w synchronizacji

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

Nasza baza kod ma również starszą gałąź port gdzie inny deweloper przeportowany nasz produkt do innego RDBMS. port nie jest jeszcze gotowy do ponownego połączenia z master.

Niedawno konieczne było posiadanie new_feature pracy w port. Więc połączyła te dwa do nowego oddziału port/new_feature, i kilka zobowiązuje tam (I, J), aby to działa:

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

ja wiśniowy zbierane I i J z powrotem do new_feature (jak ja * J *), ponieważ wymagały znaczącego refaktoryzacji, które chciałem mieć również w new_feature. Robiłem również nowe zatwierdzenia (K) do new_feature, które należy przekazać do port/new_feature (K *).

Idąc dalej, co jest najlepszy plan, aby utrzymać new_feature i port/new_feature w synchronizacji (ale tylko w odniesieniu do nowych zmian)? Czy powinienem trzymać komiksy od jednego do drugiego (i odwrotnie)? Czy istnieje wygodny sposób na to, łącząc?

Odpowiedz

1

Cherry-picking jest niebezpieczne z powodu:

  • duplikat zobowiązuje (następny seryjnej będzie skomplikowana, ponieważ Git spróbuje ponownie ubiegać I-J-K na szczycie ... I-J-K).
    To nie będzie tak, jeśli zmienisz jedną gałąź na drugą (patrz "Git cherry pick and datamodel integrity"), ale nie jest to możliwe w twoim przypadku.

  • Zależności funkcyjne (patrz „How to merge a specific commit in git”), ale podejrzewam, że nie jest problemem w Twoim przypadku: I i J nie zależą H i może być bezpiecznie stosowany do 3.

Wybór wiśni jest wygodny, jeśli nie zamierza się scalać portu i nowej funkcji ze sobą.
Jeśli tak jest, zachowaj selekcję wiśni.

+0

Chciałbym idealnie zobaczyć wszystkie połączone gałęzie. Ale tak długo, jak będę kontynuował pracę nad moją cechą, a port i port pozostaną niezmienione, myślę, że ma sens utrzymanie new_feature i port/new_feature jako oddzielnych gałęzi. Dzięki za dobre rzeczy na temat zbierania wiśni - cieszę się na dzień, kiedy wszystko jest w sam raz :-) – antinome

Powiązane problemy