Quando si utilizza Git, è consigliabile utilizzare il ramo principale per lo sviluppo attivo?

32

In primo luogo, un po 'di background, siamo in procinto di spostare tutti i nostri team di progetto a utilizzare git e stiamo definendo le linee guida su come i repository dovrebbero essere organizzati in modo che alcune filiali possano essere monitorate per integrazione continua e distribuzione automatica ai server di test. Attualmente ci sono due modelli che si stanno sviluppando:

  1. strongmente influenzato dall'articolo nvie.com sulle succursali riuscite con il ramo principale che rappresenta il codice più stabile, un ramo di sviluppo per il codice edge sanguinante e un ramo di integrazione per il codice che è pronto per il test del QA.

  2. Un modello alternativo in cui il ramo principale rappresenta il codice di sviluppo del bordo sanguinante, un ramo di integrazione per il codice pronto per il test del QA e un ramo di produzione per il codice stabile pronto per la distribuzione.

A questo punto, è in parte una questione di semantica in relazione a ciò che rappresenta il ramo principale, ma sta facendo lo sviluppo attivo sul ramo principale in realtà una buona pratica o non è davvero così rilevante?

    
posta rjzii 03.02.2012 - 15:16
fonte

2 risposte

33

L'unica funzione di definizione reale del ramo master è che è l'impostazione predefinita per alcune operazioni. Inoltre, i nomi dei rami hanno solo significato all'interno di un repository specifico. Il mio master potrebbe puntare al tuo development , ad esempio. Inoltre, un ramo master non è nemmeno richiesto, quindi se c'è qualche confusione su quale ramo dovrebbe essere, il mio consiglio è di solito di lasciarlo fuori del tutto.

Tuttavia, a mio parere, il modo migliore per pensarlo è come predefinito per il push to. La maggior parte dei tutorial online che i tuoi sviluppatori leggono assumono questo. Quindi, ha molto senso avere master su qualunque ramo venga spinto più spesso. Alcune persone pensano che sia una copia incontaminata che è intoccabile per gli sviluppatori se non dopo il più rigoroso scrutinio, ma usarlo in questo modo rimuove molte delle impostazioni predefinite utili fornite da git. Se vuoi quel tipo di ramo incontaminato, lo inserirò in un repository completamente separato a cui solo alcune persone possono scrivere.

    
risposta data 03.02.2012 - 20:22
fonte
12

No, non è consigliabile, anche all'inizio, prima di andare al QA. Come best practice, il modello di sviluppo dovrebbe essere coerente dall'inizio alla fine. Il tuo ramo principale dovrebbe iniziare vuoto, dovresti diramare il ramo di sviluppo e iniziare ad aggiungere file, unire nel ramo di integrazione, quindi successivamente al tuo master.

Mentre nessuno può preoccuparsi durante lo sviluppo che il master non costruisce, si presta presto a cattive abitudini. Il master dovrebbe sempre creare e, per le principali release di feature, non sarebbe una cattiva idea disporre di rami archiviati di build importanti in modo che possano essere restituiti punti di rilascio stabili, se necessario.

    
risposta data 03.02.2012 - 16:08
fonte

Leggi altre domande sui tag