Ho un ambiente git esistente configurato in questo modo:
Alfinedidistribuirelemiemodifichealserverdiproduzione,attualmenteI:
- esegui
gitcommit
sullacopiadisviluppo - esegui
gitpush
perinviarelemiemodificheaproject.git,ilrepositorycentrale - sshnelserverdiproduzione
- esegui
gitpull
sullacopialive
Vorreieliminareipassaggi3e4quandosispingeilramoprincipale.Hotrovatopiùtutorial(comepost-receive
hook, ma sembrano tutti supporre che il repository nudo vivrà sul server di produzione, come questo:
In questo scenario la copia live può essere aggiornata utilizzando la post-ricezione impostando GIT_WORK_TREE
nella directory locale corretta, quindi eseguendo git checkout -f master
.
È molto scorrevole, ma non funziona con il mio ambiente esistente. Potrei sempre spostare il repository centrale dal server di sviluppo al server di produzione, ma spero che ci sia un modo semplice per notificare alla copia live di eseguire un git pull
automaticamente quando il repository centrale riceve una spinta.
Qualche suggerimento o dovrei semplicemente mordere il proiettile e spostare il repository centrale in produzione?