Git meilleures pratiques pour les fichiers de configuration, etc
Je suis encore nouveau pour toutes les choses git et je me demandais quelles sont les meilleures pratiques en ce qui concerne les fichiers de configuration. Mon développement local serveur besoins différents config valeurs à mes vivre alors, comment puis-je l'arrêter en poussant /tirant ces fichiers?
- inclure ce fichiers .gitignore
Vous devez vous connecter pour publier un commentaire.
Utilisez les liens symboliques.
Prendre un exemple où vous avez un fichier de configuration nommé "config.ini". Dans le répertoire de travail de votre repo git, vous devez effectuer les opérations suivantes:
Créer une version du fichier de configuration appelé "config-sample.ini". C'est ce fichier que vous allez faire tout votre travail sur.
Créer un lien symbolique entre "config.ini" et "config-sample.ini".
Ce let's all votre point de code de configuration "config.ini" même si vous êtes vraiment à la maintenir "config-sample.ini".
Mise à jour de votre .gitignore pour éviter le "config.ini" d'être stocké. C'est, ajouter un "config.ini" ligne:
(Facultatif, mais fortement recommandé) Créer un .gitattributes fichier avec la ligne "config.ini exportation ignorer".
Faire peu de codage et à déployer....
Après le déploiement de votre code de production, de copier le "config-sample.ini" fichier de configuration "config.ini". Vous aurez besoin de faire des ajustements nécessaires pour la configuration de production. Vous aurez seulement besoin de le faire la première fois que vous déployez et chaque fois que vous modifiez la structure de votre fichier de configuration.
Quelques avantages de cette:
La structure de votre fichier de configuration est maintenue dans le repo.
Raisonnable par défaut peut être maintenu pour toutes les options de configuration qui sont les mêmes entre les dev et de la production.
Votre "config-sample.ini" sera mise à jour chaque fois que vous appuyez une nouvelle version de la production. Cela le rend beaucoup plus facile de repérer les changements que vous devez faire dans votre "config.ini fichier".
Vous n'aurez plus jamais remplacer la version de production de "config.ini". (Facultatif étape 4 avec le .gitattributes fichier ajoute une garantie supplémentaire que vous ne serez jamais à l'exportation de votre "config.ini fichier" même si, par inadvertance, vous l'ajouter à la prise en pension.)
(Cela fonctionne très bien pour moi sur Mac et Linux. Je devine qu'il y a une solution possible sur Windows, mais quelqu'un d'autre aura à se prononcer sur ce point.)
Diverses options sont disponibles:
1. Commettre un fichier de configuration par défaut, mais permettre à un local de fichier de config
Ajouter un fichier
default.conf
à votre dépôt Git.Votre app regarde d'abord pour
app.conf
, mais si cela n'existe pas, il utilisedefault.conf
.Les utilisateurs qui veulent la non-config par défaut peut copier
default.conf
àapp.conf
et ensuite de le modifier.Les utilisateurs ne devraient pas s'engager
app.conf
dans le dépôt, parce que les différents utilisateurs peuvent vouloir les différents paramètres de ce fichier. (Donc, vous devriez mettreapp.conf
dans votre.gitignore
.)Avec un twist (recommandé)
Votre application charge toujours
default.conf
mais siapp.conf
est présent, alors il sera copie paramètres deapp.conf
sur les paramètres dedefault.conf
.Cette torsion a quelques avantages:
app.conf
seulement besoin de tenir les différences de la valeur par défaut, la rendre plus petite et plus facile à maintenir.Lorsque l'application des changements, de nouvelles valeurs par défaut ajouté à
default.conf
sera disponible pour l'application, sans avoir à les copier dansapp.conf
.2. Utiliser des variables d'environnement et/ou des arguments de ligne de commande
Vous pouvez utiliser une variable d'environnement pour point de votre application à un fichier de config. Vous pourriez commencer votre application comme ceci:
ou alternativement:
Cela signifie que vous pouvez avoir plusieurs fichiers de configuration
development.conf
,staging.conf
etproduction.conf
. Lorsque vous démarrez l'application, vous dire quel fichier de configuration à utiliser.Les développeurs qui veulent expérimenter avec différentes config peut point à leur propre fichier, par exemple
custom.conf
.Vous pouvez également utiliser des variables d'environnement ou d'arguments de ligne de commande pour remplacer les paramètres spécifiques:
3. Les différentes branches de
Vous pouvez garder votre config par défaut dans votre branche master.
Fork branches différentes pour chacun de vos environnements différents.
Chaque branche peut modifier le fichier de config par défaut en tant que de besoin.
Lors de votre branche master mises à jour, de fusion et de master dans vos branches spécifiques.
Personnellement, je ne recommande pas cette approche. Je pense que c'est plus difficile à maintenir.
Git va ignorer les fichiers que vous n'avez pas explicitement ajouter, afin de vérifier les différentes branches juste les laisse où ils sont dans la structure de répertoire que les autres fichiers de changer autour d'eux. Si vous ajoutez à votre fichier de configuration pour les .gitignore fichier dans votre pension de la racine (peut-être créer il, plus d'infos ici), alors vous pouvez toujours faire de tous les fichiers de commandes comme
si vous le souhaitez et vous inquiétez pas à ce sujet.
Meilleure façon est de créer un fichier appelé ".gitignore" et insérer les fichiers/dossiers que vous souhaitez ignorer.
Cette façon, vous pouvez faire la commande git add * chaque fois que