Git avancé

, par cy_altern

Des éléments pour une utilisation avancée de Git avec SPIP

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 :

Ajouter un hook post receive :

Passer le fichier en exécutable :

En local

Ajouter le dépot distant “prod” :

Pour publier sur la production :

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)

Notes

[1A propos des dépôt bar (« nus »), http://www.saintsjd.com/2011/01/what-is-a-bare-git-repository/ donne cette explication :
Un dépôt nu créé avec git init —bare est destiné au... partage. Si vous collaborez avec une équipe de développeurs et que vous avez besoin d’un endroit pour partager les modifications apportées à un repo, alors vous voudrez créer un dépôt nu dans un endroit centralisé où tous les utilisateurs peuvent pousser leurs modifications (le choix le plus facile est souvent github.com). Comme git est un système de contrôle de version distribué, personne ne modifiera directement les fichiers dans le dépôt centralisé partagé. Au lieu de cela, les développeurs clonent le dépôt nu partagé, apportent des modifications localement dans leurs copies de travail du dépôt, puis les renvoient au dépôt nu partagé pour mettre leurs modifications à la disposition des autres utilisateurs.