Tendo ad usare Git per distribuire il codice di produzione sul server web. Questo di solito significa che da qualche parte un repository Git principale è ospitato da qualche parte accessibile su ssh
, e il server di produzione serve quel repository clonato, mentre limita l'accesso a .git/
e .gitignore
. Quando ho bisogno di aggiornarlo, sposto semplicemente il repository del server dal repository principale. Questo ha diversi vantaggi:
- Se qualcosa va mai storto, è estremamente semplice eseguire il rollback a una revisione precedente, semplice da controllare.
- Se uno qualsiasi dei file del codice sorgente viene modificato, controllandolo con facilità come
git status
, e se il repository del server è stato modificato, sarà ovvio la prossima volta che provo a tirare. - Significa che esiste un'altra copia del codice sorgente, nel caso si verifichino cose brutte.
- L'aggiornamento e il rollback è facile e molto veloce.
Questo potrebbe tuttavia avere alcuni problemi:
-
Se per qualsiasi ragione il server web decide che dovrebbe servire
.git/
directory, tutto il codice sorgente era ed è leggibile da tutti. Storicamente, c'erano alcune (grandi) aziende che hanno commesso questo errore. Sto usando.htaccess
file per limitare l'accesso, quindi non penso che ci sia alcun pericolo al momento. Forse un test di integrazione che assicura che nessuno possa leggere la cartella.git/
è in ordine? -
Tutti coloro che ottengono accidentalmente l'accesso in lettura alla cartella ottengono anche l'accesso ad ogni revisione passata del codice sorgente che esisteva in precedenza. Ma non dovrebbe essere molto peggio di avere accesso alla versione attuale. Dopo tutto, quelle revisioni sono obsolete per definizione.
Tutto ciò che ho detto, credo che l'utilizzo di Git per la distribuzione del codice in produzione sia ragionevolmente sicuro e molto più semplice di rsync
, ftp
, o semplicemente copiandolo. Cosa ne pensi?