Il modo migliore per gestire i rami Git in diversi ambienti

1

Ho avuto una domanda di base sull'utilizzo di un repository git in ambienti diversi. Sono più un amministratore Sys che uno sviluppatore web, quindi le squadre su cui ho lavorato prima lavoravano proprio nel master, che ovviamente non è il modo giusto per farlo.

Sto configurando un ambiente di sviluppo / stage / stage per una piccola azienda, e il repository Git ha filiali master / stage / dev. A livello locale, ho appena clonato il repository git, quindi git checkout development , che funziona bene, ma mi chiedevo quale sarebbe il modo migliore per farlo nei server dev / stage / prod.

Per me, sembra come controllare l'intero repository negli ambienti, quindi solo get checkout <environment> potrebbe non essere il modo giusto per farlo, dal momento che il prod serve solo il ramo di produzione, dev ha solo bisogno di sviluppo, ecc.

    
posta Justin 24.02.2016 - 15:26
fonte

2 risposte

1

Puoi farlo con i singoli sviluppatori che lavorano nelle filiali e quindi unirli in master come richiesto, quindi distribuire semplicemente dal master in ciascuno dei tuoi ambienti.

Oppure puoi farlo tramite rami di primo livello (sviluppo, accettazione, produzione, ecc.) come suggerisci. Ad un certo punto, la logica di ciò che accade in ogni ambiente deve essere gestita. E il tuo modo di suggerire è buono come qualsiasi.

Vale la pena esaminare qualcosa come Ansible ( link ). Di recente l'abbiamo impiegata presso l'azienda in cui lavoro ed è un modo eccellente per estendere build diverse a server diversi in base alla configurazione e ai modelli. Funziona meglio da una macchina di controllo basata su Unix per spingere le modifiche a qualsiasi macchina desideri, quindi vale la pena tenere a mente, poiché potrebbe essere necessario costruire una macchina virtuale Unix come macchina di controllo e installare Ansible su di essa. Raccomando anche a Vagrant di gestire questo ( link ).

Potresti anche avere un server Jenkins che gestisce ciascuna delle build per ciascuna delle filiali e quindi semplicemente distribuire i binari su ciascun server tramite qualche altro processo, come Ansible o qualche programma batch.

Spero che questo aiuti a rispondere alla tua domanda.

    
risposta data 24.02.2016 - 17:14
fonte
0

Il modo tipico per farlo è disporre di un ramo per ogni funzione da unire al master una volta terminato. Per i rilasci di produzione, creare un ramo di distacco dal master. Ad es. build notturne, basta eseguire l'ultimo master. Non dovresti aver bisogno di rami di lunga durata eccetto master e rami di rilascio pubblicati.

    
risposta data 23.07.2016 - 21:11
fonte

Leggi altre domande sui tag