2013-02-25 16 views
8

Jestem stosunkowo nowy w użyciu git.git: utwórz "tymczasowy" oddział integracji

niedawno od mistrza, które rozgałęziły się + -10 funkcji oddziałów. nazwijmy je A, B, C, itp.

Chcę połączyć te wszystkie elementy w celu przetestowania. czy to dobrze, jeśli utworzę nowy oddział i scalę moje funkcje?

np

[master] git checkout -b integration 

[integration] git merge A 

[integration] git merge B 

[integration] etc 

gdy wszystkie funkcje zostały przetestowane i zatwierdzone, to jest wtedy bezpiecznie łączyć integration do opanowania, i mam historię cecha oddział utrzymany w dzienniku głównego

np

[integration] git checkout master 
[master] git merge integration 
[master] git branch -d integration 

Dzięki

Odpowiedz

8

Krótka odpowiedź: tak.

Długa odpowiedź: tak i zakładając, że w międzyczasie nie zostaną wprowadzone żadne zmiany w Twoim oddziale głównym, połączenie do wzorca będzie fuzją "szybkiego przewijania do przodu", więc po [master] git merge integration gałąź główna będzie wyglądać jak gałąź integracji przed scalenie.

"Historia gałęzi" pojawi się w gałęzi głównej. IMHO, najlepiej nie myśleć o swojej historii jako o "historii gałęzi", raczej o "historii kodu".

Jeśli chcesz zapisać fakt, że zmiana nastąpiła w wyniku scalenia, użyj git merge --no-ff, aby wymusić utworzenie zgody na scalanie, nawet jeśli zatwierdzenie szybkiego przewijania (które zachowuje historię liniową, gdy to możliwe) będzie działało.

Zobacz także Correct Git workflow for shared feature branch?

+0

dzięki za odpowiedź dogłębnego – kabal

3

pewno, to f ine.

Domyślnie (chyba że squash zatwierdza scalanie), zachowasz pełną historię każdego elementu i historię integracji, nawet gdy tymczasowy oddział zniknie.