2010-03-14 7 views
2

Ceci est ma première question SO et je suis nouveau à Git ainsi. Contexte: Je suis censé être le gourou du contrôle de version pour Git dans mon groupe d'environ 8 développeurs. Comme je n'ai pas beaucoup d'expérience Git, c'est excitant. J'ai décidé que nous avions besoin d'un référentiel partagé qui serait le maître faisant autorité pour le code de production et le principal point de rencontre pour le code de développement. Comme nous travaillons pour une société, nous avons vraiment besoin de montrer une source autoritaire pour le code de production au moins.Git rebase et fichiers de configuration semi-tracked par développeur

J'ai demandé aux développeurs de procéder à un rebasement par traction en extrayant du référentiel partagé, puis d'appuyer sur les validations qu'ils souhaitent partager. Nous avons eu des problèmes avec un type particulier de fichier.

L'un de ces fichiers, que je suppose actuellement typique du problème, s'appelle web.config. Nous voulons un web.config maître contrôlé par la version pour les développeurs à cloner, mais chaque développeur peut apporter des modifications mineures à ce fichier qu'il souhaite sauvegarder localement mais pas partager.

Le problème est le suivant: comment puis-je dire à git et non à de prendre en compte les modifications locales ou de valider ce changement pour le rebasing et le push? Gitignore ne semble pas résoudre le problème, mais peut-être est-ce parce que je mets web.config en .gitignore trop tard?

Dans certaines situations simples, nous avons empilé des modifications locales, rebasé, poussé et déplacé la pile, mais cela ne semble pas fonctionner tout le temps. Je n'ai pas encore trouvé le modèle.

La documentation publiée sur pull --rebase a tendance à traiter des situations plus simples.

Ou est-ce que j'ai une idée fausse? Utilisons-nous Git?

Dougkiwi

Répondre

0

Peut-être que vous pouvez forcer un conflit et ajouter une configuration de Rere vous ne modifiez pas les données. Mais je pense qu'il est préférable de ne pas s'engager avec le changement dans ce changement.

5

L'idée générale derrière le fichier de configuration est de ne mettre sous contrôle de code source:

  • un modèle de celui-ci,
  • un script capable de générer un fichier de configuration appropriée en fonction des données locales (nom d'utilisateur, le nom d'hôte, adresse IP, etc.)

L'autre solution serait de le faire dans une branche dev, ainsi que d'autres développeurs locaux et ajouter un custom merge driver merve fusionner en arrière les modifications du fichier de configuration s.
Mais cela plus complexe et généralement pas nécessaire si votre fichier de modèle est correctement construit.

Questions connexes