Lo uso per la manutenzione critica del sito web. Sono l'unico sviluppatore, ma ho un master, sviluppo ed emissione di rami.
Il mio processo di lavoro per l'impostazione del sito è simile a questo:
-
Rendi il ramo principale utilizzabile. Effettua il commit iniziale.
-
Acquista il ramo. Non fare nulla, sviluppare funzioni come buffer di test per l'unione in master.
-
Estratto problema ramo. Codifica il problema, quando è terminato, esegui lo sviluppo, verifica eventuali problemi, unisci conflitti, ecc .. risolvili.
Quando un numero sufficiente di problemi viene unito per lo sviluppo di una release e lo sviluppo è stato testato per la stabilità, pull diventa master.
Master
|
Develop - E
/ | \ \
A B C D
In questo modo puoi sviluppare una raccolta completa di test, dove puoi testare stabilità, problemi, ecc ... senza dover rischiare di danneggiare il Master e dover eseguire il rollback dei commit se fossero dannosi.
Inoltre, utilizzando i singoli rami per il commit, puoi "lasciare" il lavoro che hai già fatto, ricominciare da capo con qualcos'altro per risolvere un problema più urgente e farlo uscire prima.
Nella vita reale di solito ho un ramo di un problema, e lo tiro in sviluppo e poi in master. A volte è noioso, ma almeno una volta ogni due mesi devo lasciare il lavoro alla goccia di un cappello perché qualcuno ha avuto l'idea che devo fare RightNow ™ e in questo modo posso tornare rapidamente a uno stato base, creare la cosa e poi dopo continua dove ero. Soprattutto con progetti di grandi dimensioni che richiedono più settimane, è una divinità che posso cambiare rapidamente rami.
Considera questo scenario: lavori sempre su un ramo principale e hai AwesomeCodeThing ™ nelle opere che lasciano il tuo ramo Master in chirurgia a cuore aperto e compare un YugeBug ™ che ha bisogno di un aggiustamento urgente altrimenti migliaia di utenti si lamenteranno di te BigProblems ™
L'unico modo per risolvere rapidamente il problema in uno scenario del genere,
- controlla i tuoi precedenti commit,
- controlla quando è stato eseguito l'ultimo commit stabile (cursing è facoltativo)
- torna a quel commit
- crea correzione, applica la correzione alla produzione
- risolvi tutti i conflitti e i problemi che ora cerchi di tornare allo stato di AwesomeCodeThing ™
- mollare, piangere e iniziare a lavorare. (opzionale)
Se utilizzi i rami:
- Checkout master
- crea una diramazione UrgentFix ™ e aggiusta le cose
- estrai UrgentFix ™ nel master
- invia alla produzione
- Unisci master in sviluppo
- Unisci sviluppo in AwesomeCodeThing ™
- prendi una birra e continua a lavorare.