voir - ignorer un dossier git




Ignorer le fichier.gitignore lui-même (13)

Je viens de faire un git init à la racine de mon nouveau projet.

Ensuite, j'ai créé un fichier .gitignore .

Maintenant, quand je tape l' git status , le fichier .gitignore apparaît dans la liste des fichiers non suivis. Pourquoi donc?


Accédez au répertoire de base de votre repo git et exécutez la commande suivante:

echo '\\.*' >> .gitignore

Tous les fichiers de points seront ignorés, y compris ce .DS_Store embêtant si vous êtes sur un mac.


Après avoir ajouté le fichier .gitignore et l'avoir .gitignore , il ne s'affichera plus dans la liste des "fichiers non suivis".

git add .gitignore
git commit -m "add .gitignore file"
git status

Bien sûr, le fichier .gitignore apparaît sur l'état, car il n'est pas trafiqué, et git le voit comme un nouveau fichier savoureux à manger!

Depuis .gitignore est un fichier non-tracé mais il est un candidat à être ignoré par git quand vous le mettez dans .gitignore!

Donc, la réponse est simple: il suffit d'ajouter la ligne:

.gitignore # Ignore the hand that feeds!

à votre fichier .gitignore!

Et, contrairement à la réponse d'August, je dois dire que ce n'est pas que le fichier .gitignore devrait être dans votre référentiel. Il arrive juste que cela puisse être, ce qui est souvent pratique. Et c'est probablement vrai que c'est la raison. Gitignore a été créé comme une alternative à .git / info / exclude, qui n'a pas l'option d'être suivi par le dépôt. Quoi qu'il en soit, la façon dont vous utilisez votre fichier .gitignore dépend entièrement de vous.

Pour référence, consultez la page de manuel gitignore (5) sur kernel.org.


Cela semble fonctionner uniquement pour votre répertoire actuel pour que Git ignore tous les fichiers du référentiel.

mettre à jour ce fichier

.git/info/exclude 

avec votre joker ou votre nom de fichier

*pyc
*swp
*~

Il est tout à fait possible qu'un utilisateur final souhaite que Git ignore le fichier ".gitignore" simplement parce que les dossiers spécifiques de l'EDI créés par Eclipse ne sont probablement pas les mêmes que NetBeans ou un autre IDE. Donc, pour garder l'IDE antagoniste du code source, il est facile d'avoir un git personnalisé qui n'est pas partagé avec toute l'équipe car les développeurs individuels peuvent utiliser des IDE différents.


J'ai trouvé que le meilleur endroit pour mettre en place un ignorer les fichiers .DS_Store embêtants est dans le .git/info/exclude .

IntelliJ semble le faire automatiquement lorsque vous y installez un dépôt git.


Juste incase quelqu'un d'autre a la même douleur que nous avions. Nous voulions exclure un fichier qui avait déjà été commis.

Ce post était beaucoup plus utile: travailler avec .git / info / exclure trop tard

Plus précisément, ce que vous devez ignorer un fichier est en fait utiliser la commande git remove Voir git rm ( http://www.kernel.org/pub/software/scm/git/docs/git-rm.html )

vous le testez en allant

git rm --dry-run *.log
(Si vous dites vouloir exclure tous les fichiers journaux)

cela produira ce qui serait exclu si vous l'avez exécuté.

puis

vous l'exécutez en allant

git rm *.log
(ou quel que soit le chemin ou l'expression du nom de fichier que vous voulez)

Ajoutez ensuite une ligne *.log à votre fichier .gitignore .


L'idée est de placer les fichiers spécifiques à votre projet dans le fichier .gitignore et (comme déjà mentionné) de l'ajouter au dépôt. Par exemple, les .pyc et .o , les journaux créés par la suite de tests, certains appareils, etc.

Pour les fichiers .swp votre propre installation mais qui n'apparaîtront pas nécessairement pour chaque utilisateur (comme les fichiers .swp si vous utilisez vim, les répertoires ecplise cachés, etc.), vous devriez utiliser .git/info/exclude (comme déjà mentionné).


Si quelqu'un a déjà ajouté un .gitignore à votre repo, mais que vous souhaitez y apporter des modifications et que ces modifications sont ignorées, procédez comme suit:

git update-index --assume-unchanged .gitignore

Source


Si vous avez déjà enregistré .gitignore et que vous souhaitez ignorer les modifications, consultez cette réponse :

Essayez d'utiliser cette commande:

git update-index --assume-unchanged FILENAME_TO_IGNORE

Pour l'inverser (si vous voulez un jour y apporter des modifications), utilisez:

git update-index --no-assume-unchanged

MISE À JOUR :

Voici comment lister les fichiers "supposés inchangés" dans le répertoire courant:

git ls-files -v | grep -E "^[a-z]"

Comme l'option -v utilisera des lettres minuscules pour les fichiers 'supposer inchangé'.


Tout d'abord, comme beaucoup d'autres l'ont déjà dit, votre .gitignore devrait être suivi par Git (et ne devrait donc pas être ignoré). Laissez-moi vous expliquer pourquoi.

(TL; DR: .gitignore fichier .gitignore et utilisez un .gitignore global pour ignorer les fichiers créés par votre IDE ou votre système d'exploitation)

Git est, comme vous le savez probablement déjà, un système de contrôle de version distribué . Cela signifie qu'il vous permet de basculer entre différentes versions (même si le développement a divergé en différentes branches) et qu'il permet également à plusieurs développeurs de travailler sur le même projet.

Bien que le suivi de votre .gitignore présente également des avantages lorsque vous passez d'un instantané à l'autre, la raison la plus importante pour le valider est que vous souhaiterez partager le fichier avec d'autres développeurs travaillant sur le même projet. En validant le fichier dans Git, les autres contributeurs recevront automatiquement le fichier .gitignore lors du clonage du référentiel. Ils n'auront donc pas à s'inquiéter de la .gitignore accidentelle d'un fichier qui ne devrait pas être validé (tels que les fichiers journaux, les répertoires de cache, informations d'identification de base de données, etc.). Et si, à un certain moment, le .gitignore du projet est mis à jour, il peut tout simplement .gitignore ces modifications au lieu d'avoir à modifier le fichier manuellement.

Bien sûr, il y aura des fichiers et des dossiers que vous voudrez ignorer, mais qui sont spécifiques à vous et ne s'appliquent pas aux autres développeurs. Cependant, ceux-ci ne devraient pas être dans le .gitignore du projet. Il existe deux autres endroits où vous pouvez ignorer les fichiers et les dossiers:

  • Les fichiers et dossiers créés par votre système d'exploitation ou votre IDE doivent être placés dans un .gitignore global . L'avantage est que ce .gitignore est appliqué à tous les référentiels de votre ordinateur, vous n'avez donc pas à le répéter pour chaque référentiel. Et ce n'est pas partagé avec d'autres développeurs, car ils peuvent utiliser un système d'exploitation différent et / ou IDE.
  • Les fichiers qui n'appartiennent pas au .gitignore du projet, ni au .gitignore global, peuvent être ignorés en utilisant le référentiel explicite exclu dans your_project_directory/.git/info/exclude . Ce fichier ne sera pas partagé avec d'autres développeurs et est spécifique à ce référentiel unique

Vous pouvez également avoir un fichier git .gitignore utilisateur global qui s'appliquera automatiquement à tous vos repos. Ceci est utile pour les fichiers IDE et les éditeurs (par exemple les fichiers swp et *~ pour Vim). Modifier les emplacements de répertoire pour adapter votre système d'exploitation

  1. Ajouter à votre fichier ~/.gitconfig

    [core]
    excludesfile = /home/username/.gitignore
    
  2. Créer un fichier ~/.gitignore avec des modèles de fichiers à ignorer

  3. Enregistrez vos fichiers de points dans un autre repo afin de disposer d'une sauvegarde (facultatif).

Chaque fois que vous copiez, initez ou clonez un repo, votre fichier gitignore global sera également utilisé.


.gitignore consiste à ignorer les autres fichiers. git est sur les fichiers, donc il s'agit d'ignorer les fichiers. Cependant, comme git fonctionne à partir de fichiers, ce fichier doit être présent en tant que mécanisme pour lister les autres noms de fichiers.

Si on l'appelait .the_list_of_ignored_files cela pourrait être un peu plus évident.

Une analogie est une liste d'éléments à faire que vous ne voulez PAS faire. À moins que vous les énumériez quelque part est une sorte de liste «à faire» vous ne saurez pas à leur sujet.





gitignore