È buona norma avere un ramo remoto per ogni sviluppatore?

10

È considerata una buona pratica avere un ramo remoto per ogni singolo sviluppatore nel progetto?

Stiamo utilizzando Git con i seguenti rami:

  • Master
  • stampa
  • sviluppare

Se ogni sviluppatore aveva il proprio ramo, potevano inserire il codice nelle proprie filiali e altri potevano unire queste modifiche nelle proprie filiali.

    
posta balanv 28.02.2013 - 14:07
fonte

5 risposte

3

No! È buona norma avere uno spazio dei nomi per lo sviluppatore remoto per ogni sviluppatore.

Un singolo ramo spesso non è sufficiente, quindi lo sviluppatore finirebbe per riavvolgerlo molto o non sarebbe di grande aiuto. Piuttosto, vuoi dire che uno sviluppatore può spingere ciò che vuole sotto their.name / . Possono usarlo per pubblicare versioni di anteprima per gli altri, dando la versione per qualcun altro da testare o anche per qualcun altro da integrare.

Puoi usare questo anche per dare filiali all'integratore o puoi usare nomi basati su attività. I nomi basati sulle attività sono solitamente più facili da tracciare per l'integratore, ma gli sviluppatori pensano di più sulla denominazione e le persone non amano pensare. Non so quale funzionerà meglio nella pratica; potrebbe anche dipendere dalla squadra in particolare.

    
risposta data 28.02.2013 - 15:03
fonte
2

Probabilmente non darei ad ogni sviluppatore un ramo sul server centrale a meno che tu non abbia una sorta di infrastruttura in stile github che permetta loro di creare e distruggere i rami stessi e documentare chiaramente a cosa servono. Alcuni sviluppatori avranno bisogno di più di un ramo e alcuni non ne avranno affatto bisogno, ma tu stai creando confusione per tutti da ordinare e spese generali amministrative per te stesso.

Vorrei incoraggiare invece il tipo di git di condivisione organico eccelle in. È molto facile creare un clone sul proprio computer e trasformarlo in una condivisione SMB di sola lettura da cui gli altri possono effettuare il pull. In effetti, mi sorprenderebbe molto se molti dei tuoi sviluppatori non lo stessero già facendo.

    
risposta data 28.02.2013 - 14:51
fonte
1

Dipende da come sono organizzati il team di sviluppo e le attività. A mio parere, il modello che hai specificato funzionerebbe meglio se:

  1. Ogni sviluppatore lavora autonomamente su attività indipendenti.
  2. Tutti gli sviluppatori contribuiscono allo stesso compito.

Dove questo potrebbe non funzionare bene è se in sviluppo ci sono progetti di feature concorrenti e ognuno di essi ha più sviluppatori che lavorano su di essi.

    
risposta data 28.02.2013 - 14:24
fonte
1

Dare a ciascuno sviluppatore la propria filiale può essere utile se tutti lavorano su cose diverse che potrebbero toccare gli stessi file. Può aiutare a evitare di calpestare le dita degli altri, ma è necessario che ognuno si unisca spesso e sia responsabile nella gestione dei conflitti. Questo è ciò che viene fatto nel mio ufficio e funziona piuttosto bene a parte il raro giorno in cui devi unire manualmente metà dei file che hai modificato.

Se più sviluppatori lavorano sulla stessa funzione, probabilmente è meglio creare filiali basate sulla funzione in sviluppo piuttosto che sullo sviluppatore.

    
risposta data 28.02.2013 - 14:26
fonte
1

Se collabori con Git, dovresti provare Pull Requests.

In breve, per prima cosa unisci il ramo master al tuo attuale ramo di lavoro. Eventuali conflitti di unione si verificheranno nella filiale locale. Questo è bello perché il tuo ramo principale non è mai rotto. Se ti fotti davvero, hai il commit locale che puoi ripristinare.

Una volta completata l'unione, chiedi a qualcun altro del team di rivedere e unire il tuo ramo nel ramo principale. Mai unire il tuo! Fintanto che nessuno è entrato di nascosto e ha fatto un'altra richiesta di pull, è garantito che si unisca correttamente. Dato che tutti sono a conoscenza della richiesta di pull, non dovresti avere più persone che si uniscono in master contemporaneamente allo stesso tempo.

Una volta che ti sei abituato a questo processo, dovresti cercare di unire il più spesso possibile - una sorta di integrazione continua di un povero. Meno tempo trascorre tra i conflitti, meglio è. Identificherete quando due persone duplicano gli sforzi e possono collaborare. Alcuni posti si uniranno ogni volta che completano un requisito, che potrebbe essere ogni due ore. Raccomando di fondere almeno una volta alla settimana; altrimenti devi interrompere le tue attività in modo migliore.

Generalmente creo un ramo per attività. Git è bello perché distingue tra commit locali e spinte. Ciò fornisce alcuni dei vantaggi di ogni persona che ha il proprio ramo senza tutta la complessità.

    
risposta data 28.02.2013 - 22:50
fonte

Leggi altre domande sui tag