Tendo a usare Git per distribuire il codice di produzione al server web. Ciò di solito significa che da qualche parte un repository Git principale è ospitato da qualche parte accessibile tramite ssh
e il server di produzione serve quel repository clonato, limitando l'accesso a .git /
e .gitignore
. Quando ho bisogno di aggiornarlo, eseguo semplicemente il pull nel repository del server dal repository principale. Questo ha diversi vantaggi:
- Se qualcosa va storto, è estremamente facile tornare a una revisione precedente, semplice come controllarla.
- Se uno dei sorgenti i file di codice vengono modificati, controllandolo facilmente come
git status
, e se il repository del server è stato modificato, sarà ovvio la prossima volta che proverò a eseguire il pull. - significa che esiste un'altra copia del codice sorgente, nel caso in cui accadano cose brutte.
- L'aggiornamento e il rollback sono facili e molto veloci.
Questo potrebbe avere alcuni problemi però:
-
Se per qualsiasi motivo il server web decide che dovrebbe servire la directory
.git /
, tutto il codice sorgente che c'era e diventa leggibile per tutti . Storicamente, c'erano alcune (grandi) aziende che hanno commesso questo errore. Sto usando il file.htaccess
per limitare l'accesso, quindi non credo che al momento ci sia alcun pericolo. Forse è necessario un test di integrazione che assicuri che nessuno possa leggere la cartella.git /
? -
Tutti quelli che accidentalmente ottengono l'accesso in lettura alla cartella ottengono anche accesso a ogni revisione passata del codice sorgente che esisteva. Ma non dovrebbe essere molto peggio che avere accesso alla versione attuale. Dopotutto, quelle revisioni sono obsolete per definizione.
Detto questo, credo che usare Git per distribuire il codice in produzione sia ragionevolmente sicuro e molto più facile di rsync
, ftp
o semplicemente copiandolo. Cosa ne pensi?