2011-09-14 2 views
3

Je travaille actuellement sur un site PHP, et j'utilise Git à la fois localement (développement) et sur le site de production (un repo sur mon serveur web utilise un post-recieve hook pour déployer à la racine web), dont les détails sont décrits à toroid.org's 'Using Git to manage a web site' article.'Désynchronise' un fichier de configuration PHP avec Git

Le problème est que j'ai aussi un fichier config.php (en quelque sorte) que j'utilise pour me connecter à la base de données qui diffère entre mon environnement de développement local (une installation locale de MySQL avec des données de test) et mon serveur web de 'production' distant (qui possède sa propre base de données 'live'). Chaque fois que j'appuie sur mes modifications sur le site web, le fichier de configuration va avec et remplace ma configuration 'live' par des paramètres se connectant au développement (inexistant)! Je dois alors manuellement SSH à mon serveur Web et remplacer le fichier config.php, sorte de vaincre le but!

Y a-t-il un moyen de faire en sorte que Git ... désynchronise le fichier config.php? Le 'développement' config.php ne devrait jamais être sauvegardé dans le repo git, et quand le serveur de production déploie les scripts PHP etc. dans le répertoire racine web, il devrait également laisser le fichier config.php 'production' existant intact.

Y a-t-il un moyen de le faire avec Git? Merci un million pour vos suggestions!

TC

Répondre

6

D'abord, je supprimerais config.php du référentiel, je créerais un fichier nommé « .gitignore » et ajouter le nom de fichier « config.php » à elle.

+3

Je suggère d'ajouter 'config.php.example' au moins, avec la plupart des paramètres communs pré-mis en place – zerkms

+0

Ah, fantastique. Initialement, cela ne fonctionnait pas pour moi, mais il s'est avéré que c'était un problème sans rapport. Encore un long chemin à parcourir jusqu'à ce que je comprenne tout, mais merci beaucoup pour l'aide! –

Questions connexes