Dopo che un repository git nudo riceve una spinta, può notificare a un remoto di tirare?

1

Ho un ambiente git esistente configurato in questo modo:

Alfinedidistribuirelemiemodifichealserverdiproduzione,attualmenteI:

  1. eseguigitcommitsullacopiadisviluppo
  2. eseguigitpushperinviarelemiemodificheaproject.git,ilrepositorycentrale
  3. sshnelserverdiproduzione
  4. eseguigitpullsullacopialive

Vorreieliminareipassaggi3e4quandosispingeilramoprincipale.Hotrovatopiùtutorial(come questo ) sull'utilizzo di post-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?

    
posta Will Martin 09.11.2016 - 23:44
fonte

2 risposte

3

ssh accetta i parametri del comando che deve essere eseguito in modo da poter creare un hook che esegua git pull sul server remoto.

ssh user@MachineB 'bash -s' < local_script.sh

o

ssh user@machineB remote_cmd
    
risposta data 10.11.2016 - 15:28
fonte
-1

Il server git in sé non sa nulla di chi è interessato a impegnarsi su di esso, quindi non può farlo.
Naturalmente sarebbe possibile avere una sorta di processo esterno che monitora il server per le modifiche alla base di codice a cui le persone e i processi possono iscriversi. Che è se non mi sbaglio come funzionano i sistemi di notifica su github e bitbucket.
Ma il lavoro dovrebbe essere fatto da quel processo esterno, probabilmente controllando periodicamente i messaggi di commit sul server o qualcosa del genere.

    
risposta data 10.11.2016 - 08:02
fonte

Leggi altre domande sui tag