2010-07-23 5 views
10

Nous migrons de Perforce vers GIT. En fait, il y avait quelques fichiers que je voudrais dans le dépôt, mais ils ne devraient pas être enregistrés régulièrement par des développeurs individuels. Des choses comme les fichiers de projet éclipse. Chaque dev peut obtenir le fichier .project initial, mais le modifier légèrement pour son environnement. Avec P4, je pouvais prendre ces fichiers, les mettre dans une liste de modifications séparée et les oublier. La synchronisation ne les écraserait pas et ils ne seraient pas validés lorsque j'aurais validé ma liste de modifications par défaut.Marquer un fichier dans le rapport GIT comme temporairement ignoré

Existe-t-il un moyen de faire quelque chose de similaire avec GIT?

Je voudrais être encore capable de "git commit -a"

+0

duplication possible de [Fichiers de configuration spécifiques à la machine d'engagement] (http://stackoverflow.com/questions/1396617/fichiers-de-configuration-machine-specific) – Senseful

+0

Copie possible de [Puis-je 'git commit' un fichier et ignorer son changements de contenu?] (https://stackoverflow.com/questions/3319479/can-i-git-commit-a-file-and-ignore-its-content-chang es) –

+0

* J'aimerais continuer à "git commettre -a" * - c'est précisément votre problème, juste là. Avec 'git', vous ne faites pas que tout commettre, vous passez en revue ce qui a changé avec' git status' et 'git diff', vous décidez quoi ajouter (ou' .gitignore'), puis vous commettez précisément ce dont vous avez besoin . Ce flux de travail garantit que vos validations ne contiennent pas de vilains comme des fichiers objets ou temporaires accidentellement enregistrés, etc. Voir, créer un historique 'git' raconte une histoire, et mieux vous le dites, plus il sera utile. Il vaut mieux ne pas le maculer avec commit-my-tas-of-garbage. – cmaster

Répondre

5

Si vous avez besoin d'une base commune pour ceux (.project, .classpath, ...), vous pouvez:

  • version du modèle de version de ces fichiers (.project_tpl, .classpath_tpl, ...)
  • utiliser un filter driver pour générer, sur la caisse, les fichiers réels (qui ne seront pas versionnés, et seulement modifiées localement par les développeurs)

alt text

(l'étape 'clean' au cours de commettre ne rien faire pour ces modèles.
Seul le « smudge » étape est utilisée ici, pour générer les fichiers privés)

Note: ceci est une légère « mauvaise utilisation » d'un pilote de filtre, qui est censé traiter uniquement le contenu du fichier, ne pas générer les nouvelles.
Mais il pourrait vous aider dans votre scénario (à condition que votre script « smudge » ne remplace pas aveuglément les fichiers d'éclipse si elles se trouvent déjà ici.)

+1

Donc, je pourrais créer une routine assez stupide qui supprime .tmpl de tout ce qui a une extension .tmpl. Je pourrais alors ajouter .project.tmpl ou configuration.xml.tmpl à git et quand les gens les tirent, ils obtiennent .project ou configuration.xml Je suppose que je pourrais aussi ajouter ces fichiers générés à .gitignore et être dorés. –

+0

@Marc: c'est l'idée :) – VonC

10

Vous cherchez probablement

git update-index --assume-unchanged .project

+0

Y at-il un moyen de s'assurer que cela est activé quand un utilisateur clone le dépôt, plutôt que de s'en remettre à eux en se souvenant de l'exécuter? – Programster

+0

Pas que je sache. –

Questions connexes