pris - gitignore tutorial




GIT-Exclure/Ignorer les fichiers de la validation (2)

Une autre solution consiste à utiliser un hook de pre-commit . Voir git help hooks pour plus de détails.

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

  • Il est plus permanent et flexible: avec des astuces telles que git update-index vous pouvez oublier de le lancer par accident, etc. Mais une fois que vous avez installé un hook, vous n’avez plus à vous en soucier.

Comme les autres astuces suggérées, les hooks ne sont pas automatiquement propagés entre les référentiels, mais vous pouvez les archiver sous forme de fichiers ordinaires et que tout le monde les relie à .git/hooks .

J'ai besoin d'ignorer les fichiers dans git! Je ne pense pas qu'ignorer est le mot juste en réalité; Je veux que les fichiers soient dans git, mais je ne veux pas pouvoir leur apporter des modifications. Cela peut sembler étrange à certains, mais il y a de très nombreuses instances pour lesquelles j'ai besoin de cette fonctionnalité. L’instance dont j’ai besoin pour l’instant concerne l’utilisation de git avec un CMS; le CMS ne fonctionnera pas sans les fichiers qu'il modifie constamment, mais je ne veux pas que ces fichiers soient validés après la validation initiale. (Ceci est très facile à faire avec SVN et Tortoise).

Workflow:

  1. Obtenez tous les fichiers nécessaires pour exécuter l'application.
  2. Ignorer les répertoires / fichiers spécifiés lors de la validation.

Voici ce que j'ai essayé:

  1. .gitignore - les fichiers n'entrent jamais dans git. Si le fichier est déjà en cache, le fichier .gitignore ne fait rien.
  2. /.git/info/exclude - le même problème que .gitignore, mais uniquement pour le référentiel local.
  3. Branching - master => LocalIgnores => WorkingBranch. Lorsque la branche de travail est fusionnée avec le maître, les modifications apportées à partir de LocalIgnores se retrouvent dans le maître. De plus, lorsque vous extrayez l'une des nouvelles branches, les fichiers supprimés sont supprimés au lieu d'être ignorés.
  4. Structure de fichier tiers - Répertoire tiers sur le nœud racine contenant une copie de tous les fichiers tiers importants afin qu’ils puissent être copiés dans le répertoire de travail utilisant le fichier .gitignore. (Celui-ci fonctionne, mais il doit y avoir une solurtion plus facile / meilleure).

Voici ma réponse d'une question similaire .

git update-index devrait faire ce que vous voulez

Cela indiquera à git que vous souhaitez commencer à ignorer les modifications apportées au fichier.
git update-index --assume-unchanged path/to/file

Quand vous voulez recommencer à suivre
git update-index --no-assume-unchanged path/to/file





filefilter