web-dev-qa-db-fra.com

Git ignore les fichiers qui ne sont pas dans gitignore

J'ai un référentiel git qui ignore les fichiers image ainsi que quelques autres fichiers, mais mon fichier .gitignore ne l'ignore qu'un fichier config.php. Existe-t-il un fichier global ignore quelque part que je n'arrive pas à trouver? Je dois spécifier des fichiers pour les ajouter maintenant, et cela me donne cet avertissement:

Les chemins suivants sont ignorés par l’un de vos fichiers .gitignore.

Le contenu de mon fichier ~/.gitconfig ne représente que mon adresse de messagerie.

76
Ian Hunter

Il peut être intéressant de savoir que votre configuration git peut contenir un fichier core.excludes, qui est un chemin d'accès à un fichier contenant des modèles supplémentaires qui sont ignorés. Vous pouvez savoir si vous avez une telle configuration en exécutant (dans le dépôt git problématique):

git config core.excludesfile

S'il imprime un chemin de fichier, examinez le contenu de ce fichier pour plus d'informations.

Dans mon cas, j’ai installé git via une ancienne version de boxen qui ignorait le motif 'Icon?' cela dans mon cas m'a donné l'avertissement, mentionné dans cette question, pour une icône de dossier (je suis sur un système de fichiers insensible à la casse, c'est pourquoi Icon?.

48
gabrielf

Découvrez ceux-ci:

  1. Avez-vous cherché d'autres fichiers .gitignore, car ils peuvent être nombreux.

  2. Regardez aussi REPO/.git/config pour voir s’il ya quelque chose.

  3. Exclusion de référentiel Des règles locales de référentiel peuvent être ajoutées au fichier .git/info/exclude de votre référentiel. Ces règles ne sont pas validées dans le référentiel, elles ne sont donc pas partagées avec les autres. Cette méthode peut être utilisée pour les fichiers générés localement que vous ne souhaitez pas générer par d'autres utilisateurs, tels que les fichiers créés par votre éditeur.

30
gahooa

J'ai eu le même problème - un répertoire était ignoré par git avec cette erreur:

➭ git add app/views/admin/tags/
The following paths are ignored by one of your .gitignore files:
app/views/admin/tags
Use -f if you really want to add them.
fatal: no files added

J'ai finalement compris que mon problème était une ligne dans mon ~/.gitignore_global:

TAGS

qui correspondait au chemin app/views/admin/tags. Je l'ai corrigé en ajoutant une barre oblique au fichier global gitignore

/TAGS

et git a recommencé à suivre mon répertoire.

21
Shevaun

Pour moi, j'avais accidentellement un caractère générique dans mon fichier ~/.gitignore_global. Peut-être vérifier là-bas?

6
Brian

Une autre chose à essayer: je possédais un répertoire B avec son propre référentiel .git imbriqué dans le répertoire de projet A (mais pas en tant que sous-module). J'ai apporté quelques modifications à B et je voulais en faire un sous-module de bonne foi. Je crois que git A ignorait automatiquement B car il contenait son propre référentiel (voir Référentiels git imbriqués sans sous-modules? ). J'ai renommé le dossier B et essayé à nouveau de le cloner en tant que sous-module, ce qui m'a amené le message d'erreur trompeur "ignoré par .gitignore". La solution consistait à supprimer .git de B.

3
Matt Montag

J'avais exactement le même problème que toi. La seule réponse que vous avez eue a énuméré quelques endroits à vérifier, mais aucun d’eux n’a résolu le problème pour moi, et de votre commentaire, je ne pense pas pour vous non plus. Je n'avais pas d'autres fichiers .gitignore cachés plus bas dans l'arborescence de répertoires; rien dans .git/config; rien dans .git/ingore/exclude

Si le problème persiste, vérifiez cette réponse . Cela a résolu le problème pour moi

En gros, recherchez un fichier ~/.gitignore. Le mien s'appelait ~/.gitignore_global. Je ne sais pas quand il a été créé (I n'y est certainement pas parvenu), mais j'ai essayé une tonne de configurations différentes de git lors de ma première installation, donc l'un d'entre eux doit l'avoir mise là.

J'espère que sa réponse vous aidera aussi!

2
Bukov

Une autre raison de recevoir ce message d'erreur de la part de git est lors de l'exécution de la commande git submodule add alors qu'une commande précédente de git s'est bloquée et a laissé le fichier verrou (cela peut arriver, par exemple, lorsque vous utilisez des scripts personnalisés qui incluent des commandes git et que vous n'avez pas notés le crash).

Si vous exécutez la commande git commit à la place, alors qu'aucune des conditions n'a changé (git submodule add continuera à crier que vos fichiers .gitignore sont à blâmer), vous verrez à la place une autre} rapport d'erreur:

$ git commit -a
fatal: Unable to create '..../.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

et en effet supprimer le lockfile:

rm .git/index.lock

résout le problème. (Cela arrive à la version 2.1.0.9736 de Git. Cela pourrait être corrigé dans les prochaines versions de Git.)

1
Ger Hobbelt

Vérifiez que vous êtes autorisé à accéder au dossier. Je viens de rencontrer ceci et c’est parce que le dossier appartenait à l’utilisateur www-data et non à l’utilisateur pour lequel je suis connecté au terminal.

1
Conrad Jones

Encore une chose: si le répertoire dans lequel vous vous trouvez nécessite un accès root pour l'écriture ou l'exécution, assurez-vous que vous êtes bien sur l'utilisateur root. En fait, j'ai eu une erreur étrange en essayant d'ajouter un sous-module et git n'arrêtait pas de se plaindre que le chemin dans lequel je clonais était ignoré par un fichier git ignore. Ensuite, je suis passé en utilisateur root, j'ai lancé de nouveau le sous-module Add, et il n'y a pas eu de problème. 

1
Maharlikans

Dans mon cas, c’était la barre oblique qui posait le problème ...

Pas travail

/srv/bootstrap/

Travail

srv/bootstrap/
0
jwogrady

Veuillez également cocher ~/.gitignore et ~/.gitignore_global qui pourraient être créés par certains clients Git (par exemple, Atlassian SourceTree sur Mac OS X).

0
viviansteller

Assurez-vous que le fichier .gitignore ne s’ignore pas lui-même . Une erreur courante consiste à ajouter une règle * au fichier .gitignore pour ignorer tous les fichiers du dossier en cours . La solution consiste à ajouter une exception à .gitignore:

*
!.gitignore

De cette façon, tous les fichiers du répertoire seront ignorés, à l'exception de .gitignore.

0
jfoliveira