38 votes

GIT - Exclure / Ignorer les fichiers du commit

J'ai besoin d'ignorer des fichiers dans git! Je ne pense pas ignorer, c'est le mot qui convient en fait, je veux que les fichiers soient dans git, mais je ne veux pas être capable de commettre les changements. Cela peut sembler une chose étrange à certains, mais il y a beaucoup, beaucoup de cas que j'ai besoin de cette fonctionnalité. Le seul exemple que j'en ai besoin maintenant, c'est lors de l'utilisation de git avec un CMS le CMS ne fonctionnera pas sans les fichiers qu'il est en constante évolution, mais je ne veux pas de ces fichiers à jamais être engagée après la première validation. (C'est très facile à faire avec SVN et de la Tortue).

Flux de travail:

  1. Obtenir Tous les Fichiers nécessaires à l'exécution de l'application.
  2. Ignorer les répertoires spécifiés / fichiers lors de la validation.

Voici ce que j'ai essayé:

  1. .gitignore -- les fichiers ne jamais entrer dans git. Si le fichier est déjà en cache de la .gitignore fichier ne fait rien.
  2. /.git/info/exclude -- même problème que .gitignore, mais seulement pour le local des pensions.
  3. La ramification -- master => LocalIgnores => WorkingBranch. Lorsque l' De travail de la branche est fusionné avec le maître, les modifications apportées à partir de LocalIgnores fin en maître. Aussi, lorsque vous commandez l'un de l' de nouvelles branches, les fichiers supprimés sont supprimés au lieu de les ignorer.
  4. Fichier tiers de la Structure-Tiers répertoire à la racine le nœud qui contient une copie de tous les importants tiers des fichiers afin qu'ils puissent être copié dans le répertoire de travail qui utilise le .gitignore fichier. (Celui-ci fonctionne, mais il y a de plus facile / mieux solurtion).

93voto

Andy Points 9657

Voici ma réponse à partir d'une question similaire.

git mise à jour de l'index devrait faire ce que vous voulez

Cela permettra d'indiquer à git que vous souhaitez démarrer en ignorant les modifications dans le fichier
git update-index --assume-unchanged path/to/file

Lorsque vous souhaitez commencer à garder la trace de nouveau
git update-index --no-assume-unchanged path/to/file

2voto

wjl Points 2904

Une autre solution est d'utiliser un pre-commit crochet. Voir git help hooks pour plus de détails.

  • Cela est plus difficile à mettre en place: vous devez écrire un script shell pour exprimer exactement ce que vous souhaitez autoriser ou d'interdire, ce qui signifie probablement que vous devez avoir une assez bonne connaissance de git.

  • Il est plus stable et flexible: avec des astuces comme git update-index vous pouvez accidentellement oublier pour l'exécuter, etc. Mais une fois que vous configurez un crochet, vous n'aurez jamais à vous inquiéter de nouveau.

Comme les autres astuces suggéré, hameçons n'est pas automatiquement propagées entre les dépôts, mais vous pouvez vérifier que les fichiers réguliers et ont tous un lien entre eux en .git/hooks.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X