Come dovrebbe funzionare il mio flusso di lavoro git locale?

1

A casa, ho un server che sta eseguendo software (su uno stack LAMP, ma accessibile solo internamente). Ho un'altra macchina e un laptop che uso entrambi per lo sviluppo di detto software. Qual è il miglior flusso di lavoro per me?

Dovrei avere un repository sul mio server locale, creare un ramo attivo, ramo di staging e ramo di sviluppo, quindi eseguire il checkout del ramo di sviluppo dal mio laptop / PC di sviluppo su cui lavorare, eseguirne il commit al termine, quindi unire il ramo di sviluppo con il ramo di staging per il test, prima di unire ulteriormente al ramo attivo?

Avrei semplicemente controllato il ramo di produzione sul mio / www / var / sul mio server?

O sto pensando / andando su questo tutto sbagliato?

Grazie.

    
posta Anonymous 09.06.2012 - 11:39
fonte

1 risposta

5

Non eseguire mai il checkout del ramo di produzione

O più specificamente, non lavorare mai fuori dal ramo di produzione (è corretto controllarlo per test e / o patch). Ed ecco perché. Non sai mai quando o se ti verrà chiesto di lavorare su un altro requisito / correzione mentre stai già sviluppando qualcos'altro. Il ramo di produzione deve essere utilizzato solo per testare il codice che sta per essere pubblicato o per apportare correzioni rapide (correzioni che hanno un ciclo di sviluppo molto più breve del tempo medio tra due check-in al ramo di produzione).

Il primo approccio che hai menzionato è quello che ho osservato più comunemente nelle impostazioni aziendali. Ecco i vantaggi:

  1. Puoi creare il numero di rami diversi che desideri per funzioni diverse.
  2. Non devi perdere il lavoro se decidi di abbandonare temporaneamente l'attività o di dover lavorare su un'attività diversa per un breve periodo.
  3. Molti sviluppatori hanno l'abitudine di commettere i loro cambiamenti alla filiale in modo che abbiano un back-up (e di rispondere da soli "come sono ... sono arrivato qui?" Ovviamente non puoi adottare questo approccio con il ramo di produzione Se usi il sistema Perforce (so che hai detto che non lo sei), potresti essere tentato di usare la funzione shelve ma questo non ti farà uscire dalle situazioni che ho descritto in # 1 e # 2.

Alcuni consigli fuori tema su come mantenere lo sviluppo. rami

Penso che sia una buona pratica fondere regolarmente il ramo di produzione con il tuo dev. ramo in modo che non sia necessario intraprendere un massiccio processo di unione quando si decide di unire le modifiche al ramo di produzione. Un altro vantaggio di questa pratica è che se qualcuno controlla una modifica in conflitto alle tue modifiche al ramo di produzione, puoi trovarle al riguardo nel ciclo di sviluppo stesso (supponendo che tu collauda regolarmente durante lo sviluppo).

Un'altra pratica che puoi seguire per evitare di incasinare il ramo di produzione è di unire il ramo di produzione un'ultima volta con il tuo sviluppatore. ramo, prova il tuo dev. filiale completamente per risolvere / scoprire eventuali conflitti (non solo quelli che emergono come differenze di linea ma anche quelli che possono presentarsi come conflitti a livello di progettazione), e quindi unire il ramo alla produzione.

Ancora un'altra buona pratica è quella di etichettare il dev. diramazione con qualcosa che identifica l'obiettivo specifico di tale attività di sviluppo piuttosto che solo chi possiede tale sviluppo. ramo (quindi, dev_notificationEnhancement e non dev_monstertruck ).

    
risposta data 09.06.2012 - 11:59
fonte

Leggi altre domande sui tag