Best practice per lavorare con le cartelle public_html e git

2

Attualmente, tutto ciò che è nella cartella public_html viene automaticamente pubblicato live. Il repository git è anche inserito in questa cartella (anche se può cambiare se necessario).

Che cos'è un buon workflow / configurazione git tale che le mie modifiche vengano pubblicate solo quando eseguo un git push , invece che automaticamente ogni volta che scrivo sul disco?

Idealmente, avrei uno o più rami come ramo di sviluppo, e uno per un ramo stabile (per flusso di lavoro git standard). Ma se creo 2 rami nella directory public_html, il mio server pubblicherà qualsiasi ramo in cui mi trovo.

Devo creare una directory mirror e collegarla allo stesso repository git e limitarne una per accedere, mentre l'altra ha accesso push e pull?

Qualsiasi suggerimento sarebbe fantastico.

    
posta bluejay5 25.02.2016 - 09:25
fonte

1 risposta

3

Prima di tutto, non dovresti davvero sviluppare sul server. A meno che tu non abbia un server molto complicato, penso che dovresti essere in grado di creare un "server" locale. Questo non è difficile da fare, usando:

  • il tuo computer locale come server,
  • una macchina virtuale (VM) (vedi ad esempio Vagrant ),
  • un contenitore (vedi finestra mobile ).

Il vantaggio di una VM o di un contenitore è che questo può essere trasferito più facilmente ad altri sviluppatori o quando si cambiano i computer. Inoltre, se hai più progetti con tecnologie diverse, evita di avere più server (in conflitto?) In esecuzione sul tuo computer per tutto il tempo.

Ora passa alla domanda effettiva . Ci sono alcune opzioni che vedo. La soluzione più semplice è stata già suggerita nei commenti:

  • scrivi uno script su scp / rsync / ... sui tuoi file sul tuo server. Questo non richiede più tempo rispetto a eseguire git push e lo script è probabilmente solo una riga.

Se vuoi davvero usare git push per questo, ti consiglio quanto segue:

  • assicurati che il server funzioni come server git e configura un hook per post-receive . Quest'ultimo potrebbe essere uno script che controlla il corrente master nella tua directory public_html o qualcosa del genere.

Ci sono un bel po 'di opzioni più avanzate, ad es.

  • se hai già un server CI (Continuous Integration) come Jenkins , ci sono plugin che aiutano a pubblicare il tuo sito Web dopo aver superato tutti test (eseguendo uno script, copiando i file, ...). Quindi questa è ovviamente la scelta più solida, ma impostare Jenkins può essere scoraggiante all'inizio (ci sono altri fornitori di software CI, però).
risposta data 25.02.2016 - 11:13
fonte