就像SO上这个问题描述的场景: http://stackoverflow.com/questions/928646/how-do-i-tell-git-to-always-select-my-local-version-for-conflicted-merges-on-a-sp
有两个分支,每个分支使用不同的配置,例如:
config.txt (on release branch):
database = 10.9.8.7
config.txt (on develop branch):
database = 192.168.0.1
当需要把develop分支的功能合并到release分支时,不希望config文件被合并;
有以下几种解决方案:
不知道大家有没什么建议?
参考: http://stackoverflow.com/questions/928646/how-do-i-tell-git-to-always-select-my-local-version-for-conflicted-merges-on-a-sp
http://stackoverflow.com/questions/2250040/using-github-to-host-public-git-repositories-whilst-ensuring-that-sensitive-data#
http://blog.miniasp.com/post/2014/12/23/Git-Advanced-Assume-Unchanged-Skip-worktree.aspx
Il est plus facile de gérer les fichiers de configuration pour différents environnements s'ils sont placés dans des fichiers différents
Le jugement de l'environnement est effectué dans le code (les méthodes courantes incluent l'adresse IP, le nom d'hôte, les variables d'environnement, etc.) et différentes configurations sont lues séparément
Une autre solution consiste à disposer d'un centre de configuration dédié chargé de l'émission des configurations et d'un elfe résident chargé de trouver le centre de configuration pour extraire les configurations, mettre en cache les configurations et coopérer avec le centre pour mettre à jour les configurations, etc.
En bref, je pense personnellement que maintenir les configurations de différents environnements à travers différentes branches permettra d'obtenir la moitié du résultat avec le double du résultat... Si vous ajoutez l'environnement de test, l'environnement de pré-version et peut-être même l'environnement de test unitaire, environnement sandbox, etc., s'il y a plus de 3 configurations différentes, ce sera toujours le cas. Si vous utilisez la maintenance de branche, elle s'effondrera essentiellement... Si vous devez le faire, il est recommandé d'imiter la forme de
.phpunit.xml.dist
, gitignore outconfig.txt
, puis maintenez leconfig.txt.dist
officiel Dans le code, lisez d'abordconfig.txt
, puis lisezconfig.txt.dist