2013-02-25 21 views
8

Sono relativamente nuovo nell'usare git.git: creare un ramo di integrazione "temporaneo"

recentemente dal master abbiamo diramato + -10 rami di funzionalità. chiamiamoli A, B, C, ecc.

Voglio unirli tutti insieme per il test. va bene se creo un nuovo ramo e mi unisco alle mie funzionalità?

esempio

[master] git checkout -b integration 

[integration] git merge A 

[integration] git merge B 

[integration] etc 

una volta che tutte le funzioni sono state testate e approvate, è quindi sicuro per fondersi integration in maestro, e ho la storia caratteristica ramo mantenuto nel registro maestro

esempio

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

Grazie

risposta

8

Risposta breve: sì.

Risposta lunga: sì e, assumendo che non vengono apportate modifiche al tuo ramo master nel frattempo, la stampa di padroneggiare sarà un "avanti veloce" si fondono così dopo [master] git merge integration, ramo principale sarà simile al ramo di integrazione prima di l'unione.

La "succursale" verrà visualizzata nel ramo principale. IMHO è meglio non pensare alla tua storia come "storia del ramo", piuttosto come "storia del codice".

Se si desidera registrare il fatto che la modifica proviene da un'unione, utilizzare git merge --no-ff per forzare la creazione di un commit di unione anche quando un commit di avanzamento rapido (che mantiene lineare la cronologia quando possibile) funzionerebbe.

Vedi anche Correct Git workflow for shared feature branch?

+0

grazie per la risposta approfondita – kabal

3

Certo, è f ine.

Per impostazione predefinita (a meno che non si esegua lo squash in commit), si manterrà la cronologia completa di ciascuna funzione e la cronologia della loro integrazione, anche dopo che il ramo temporaneo è scomparso.