Tous les systèmes de contrôle de version traitent mieux les branches qui convergent.
Une approche consiste à baser la branche "production" sur la branche "développement", et de ne fusionner que les changements dans la direction "développement -> production". Donc tous les fichiers de configurations privées restent uniquement en "production". Cependant, dans mon expérience, cela a tendance à être plutôt pénible à long terme parce que vous voulez inévitablement fusionner des choses de la production au développement. Il y a des moyens de le faire, mais ils ont tendance à être agaçants: ils impliquent soit des branches intermédiaires, soit des changements d'arrière-plan.
Une meilleure solution consiste à déplacer tous les fichiers spécifiques à la production hors de l'arborescence, de sorte que vous n'avez pas du tout à traiter avec des branches divergentes parallèles. C'est aussi une bonne pratique de conception indépendamment des préoccupations de VCS.
Êtes-vous sûr que le contrôle de version est le bon outil pour cela? Vous devriez avoir un outil de distribution (différent) qui configure votre paquet pour la distribution. Par exemple, si vous utilisez le système de construction GNU, alors "make dist" construit votre distribution. Le contrôle de version n'est pas impliqué. –