Utiliser git pour pusher les mises à jour vers un site en production
Principe :
Créer un dépôt git bare [1] sur le serveur de production avec un hook post commit qui publie ce qu’il reçoit dans le répertoire de prod.
Sur le serveur cible :
Créer le repo git bare :
mkdir monsite.git
cd monsite.git
git init --bare
Ajouter un hook post receive :
- nano hooks/post-receive
#!/bin/bash
git --work-tree=/var/www/mon_site --git-dir=/var/repo/monsite.git checkout -f
Passer le fichier en exécutable :
- chmod +x hooks/post-receive
En local
Ajouter le dépot distant “prod” :
- git remote add prod ssh://user@monserveur.fr/home/user/monsite.git
Pour publier sur la production :
- git push prod master
Voir aussi : https://blog.alwaysdata.com/fr/2018/02/05/deployer-sans-peine-avec-git-hooks/
qui détaille la procédure avec notamment un script post commit un peu plus évolué (vérification de la branche poussée par exemple)