Lo uso per la manutenzione di siti Web critici. Sono l'unico sviluppatore eppure ho un master, sviluppo e rilascio di filiali.
Il mio processo di lavoro per l'installazione del sito è simile al seguente:
Rendi il ramo master praticabile. Effettua il commit iniziale.
Acquista sviluppo ramo. Non fare nulla, sviluppa funzioni come buffer di test da unire al master.
Filiale di emissione del checkout. Codifica il tuo problema, una volta terminato, spingilo nello sviluppo, vedi se sorgono problemi, unisci conflitti ecc ... risolvili.
Quando un numero sufficiente di problemi viene unito allo sviluppo per una versione e lo sviluppo è stato testato per la stabilità, tirare lo sviluppo in master.
Master
|
Develop - E
/ | \ \
A B C D
In questo modo ottieni una raccolta completa di test in fase di sviluppo, in cui puoi testare stabilità, problemi, ecc ... senza dover rischiare di ferire il Maestro e dover annullare i commit se fossero dannosi.
Inoltre, usando le singole filiali per impegnarsi, puoi "lasciare" il lavoro che hai già fatto, ricominciare da capo per qualcos'altro per risolvere un problema più urgente e distribuirlo prima.
Nella vita reale di solito ho un ramo problematico, e lo tiro in sviluppo e poi in maestro. A volte è noioso, ma almeno una volta ogni due mesi devo abbandonare il lavoro alla caduta di un cappello perché qualcuno ha avuto l'idea che dovevo realizzare RightNow ™ e in questo modo posso tornare rapidamente a uno stato di base, fare la cosa e poi continua dove ero. Soprattutto con progetti di grandi dimensioni che richiedono più settimane questo è un dono di Dio che posso cambiare rapidamente ramo.
Consideriamo questo scenario: sempre lavora su un ramo principale e si dispone AwesomeCodeThing ™ nelle opere che lascia la filiale Master in chirurgia a cuore aperto e un YugeBug ™ apre che ha bisogno di fissaggio urgente altrimenti migliaia di utenti si lamentano con te di BigProblems ™
The l'unico modo per risolvere rapidamente il problema in tale scenario,
- controlla i tuoi precedenti impegni,
- vedere quando è stato eseguito l'ultimo commit stabile (la maledizione è facoltativa)
- tornare a quel commit
- fare la correzione, spingere la correzione fuori alla produzione
- risolvi tutti i conflitti e i problemi che ora stai provando a tornare allo stato di AwesomeCodeThing ™
- rinunciare, piangere e ricominciare da capo (opzionale)
Se usi i rami:
- Checkout master
- creare un ramo UrgentFix ™ e sistemare le cose
- tira UrgentFix ™ nel master
- spingere alla produzione
- Unisci master in sviluppo
- Unisci lo sviluppo in AwesomeCodeThing ™
- prendi una birra e continua a lavorare.