J'ai tendance à utiliser Git pour déployer du code de production sur le serveur Web. Cela signifie généralement que quelque part un référentiel Git maître est hébergé dans un endroit accessible via ssh
, et le serveur de production sert ce référentiel cloné, tout en limitant l'accès à .git /
et .gitignore
. Lorsque j'ai besoin de le mettre à jour, je tire simplement vers le référentiel du serveur à partir du référentiel maître. Cela présente plusieurs avantages:
- Si quelque chose ne va pas, il est extrêmement facile de revenir à une révision antérieure - aussi simple que de la vérifier.
- Si l'une des sources les fichiers de code sont modifiés, en vérifiant aussi facilement que
git status
, et si le référentiel du serveur a été modifié, cela deviendra évident la prochaine fois que j'essaierai de tirer. - Il signifie qu'il existe une copie supplémentaire du code source, au cas où de mauvaises choses se produiraient.
- La mise à jour et la restauration sont faciles et très rapides.
Cela pourrait en avoir quelques problèmes cependant:
-
Si pour une raison quelconque le serveur Web décide qu'il doit servir le répertoire
.git /
, tout le code source qui existait et est devenu lisible pour tout le monde . Historiquement, certaines (grandes) entreprises ont commis cette erreur. J'utilise le fichier.htaccess
pour restreindre l'accès, donc je ne pense pas qu'il y ait de danger pour le moment. Peut-être qu'un test d'intégration s'assurant que personne ne peut lire le dossier.git /
est en ordre? -
Tous ceux qui obtiennent accidentellement un accès en lecture au dossier y gagnent également accès à toutes les révisions passées du code source qui existaient auparavant. Mais cela ne devrait pas être bien pire que d'avoir accès à la version actuelle. Après tout, ces révisions sont obsolètes par définition.
Cela dit, je pense que l'utilisation de Git pour déployer du code en production est raisonnablement sûre et bien plus facile que rsync
, ftp
, ou simplement en le copiant. Que pensez-vous?