2010-09-16 9 views
1

Nous avons un fichier dont nous avons besoin d'être suivi dans notre dépôt Git. La plupart des utilisateurs doivent utiliser ce fichier comme d'habitude: valider les changements, pousser, tirer, etc ...Git: Demander à un utilisateur de ne pas extraire/fusionner les modifications vers des fichiers spécifiques, autrement suivis,

Nous avons un utilisateur pour lequel ce fichier provoque divers problèmes d'ordinateur, et n'utilise jamais ce fichier malgré tout. Nous voulons que le repo de cet utilisateur "passe" complètement à côté de ce fichier.
Tout ce qui s'y trouve maintenant est OK, mais les nouvelles modifications ne doivent pas être récupérées.

J'ai essayé de supprimer la version mise en cache et de l'ignorer, mais les modifications apportées aux fichiers ignorés localement sont toujours récupérées et fusionnées.

Est-ce que quelqu'un sait comment accomplir cela?

Merci beaucoup!

-Matt

+0

Je ne suis pas un expert git, mais pourriez-vous utiliser un crochet post-fusion pour faire cela? –

Répondre

2

Vous pouvez essayer une git filter driver:

alt text

avec une bavure/script propre:

  • capable de détecter le contenu problématique
  • remplacer ('smudge') par le contenu actuel (sauvegardé dans un autre fichier, prêt pour remplacer le contenu dangereux du fichier problématique)
  • restaurer le contenu à l'origine tiré par les cheveux lors de la validation (« clean »)

Ce pilote de filtre serait déclaré dans un seul visible fichier .gitattribute dans la branche dans laquelle l'utilisateur doit travailler.

+0

Ceci est vraiment utile. Je n'avais aucune idée de ceux qui existaient. Je vais jouer avec ça-- merci! – Matt