web-dev-qa-db-fra.com

Garder les fichiers ignorés hors du statut git

J'aimerais empêcher Git d'afficher les fichiers ignorés dans git status, car le fait de disposer de tonnes de documentation et de fichiers de configuration dans la liste des fichiers modifiés mais non mis à jour rend la liste à moitié inutile.

Est-il normal que Git affiche ces fichiers? 

Je mets les informations ignorer dans un fichier .gitignore dans le répertoire racine du référentiel Git et elles ne sont pas ajoutées lors de l'utilisation de git add ., mais il semble qu'elles ne soient pas non plus totalement ignorées, car elles apparaissent dans la liste susmentionnée et do s'affiche dans la liste imprimée par git ls-files --others -i --exclude-standard. Seuls les fichiers correspondant aux modèles de ~/.gitignore sont affichés.

Cela pourrait-il être dû au fait que je ne les ai pas ignorés auparavant et qu'ils se sont ainsi engagés au moins une fois?

102
knuton

Comme j'ai trouvé dans ce post , .gitignore ne fonctionne que pour les fichiers non suivis. Si vous avez ajouté des fichiers au référentiel, vous pouvez:

git update-index --assume-unchanged <file>

ou les supprimer du référentiel en

git rm --cached <file>

Modifier

Cet article explique cela aussi

182
MBO

Ce problème est également survenu, probablement parce que vous avez ajouté votre répertoire/fichiers ignorés à .gitignore après qu'ils aient été marqués comme "à suivre" par GIT dans un flux de validation initial. 

Donc, vous devez vider le cache de git tracking comme ceci:

git rm --cached -r [folder/file name]

Une explication plus détaillée peut être lue ici: http://www.frontendjunkie.com/2014/12/stop-git-from-tracking-changes-to.html

La commande ci-dessus a également supprimé les restes du dossier/fichiers de votre GIT Origin distant. Ainsi, vos dépôts GIT deviennent propres.

12
newbreedofgeek

Le problème peut être que ce fichier est toujours dans le cache git. Pour résoudre ce problème, vous devez réinitialiser le cache git.

Réinitialiser le cache git. Cela supprime tout de l'index.

git rm -r --cached . 

Ajoutez tous les fichiers à nouveau:

git add . 

Commettre:

git commit -m ".gitignore was fixed." 
2
Ramis

Cela fonctionne sûrement,

git rm --cached -r [folder/file name]

1
Usman

Je suppose que vous ne voulez pas ajouter le répertoire tmp (Visual Studio Platform)

1- ajoutez des lignes ci-dessous à votre fichier .gitignore local

## ignore tmp
/tmp/
./tmp/

3- sauvegarder et supprimer le dossier tmp localement. (Sauvegarde ailleurs. Par exemple, bureau?)

4- Valider les modifications au niveau local que sync to remote (par exemple github).

Après ces étapes, votre répertoire tmp ne sera plus téléchargé.

1
Kursat Turkay

De man git-lsfiles :

-i, --ignored
Show ignored files in the output. Note that this also reverses any exclude list present.

Personnellement, j'ai tendance à garder les fichiers doxygen dans mon arbre source, alors j'ai simplement ajouté ceci à mon .gitignore (qui se trouve dans le répertoire le plus haut de mon arbre source):

docs/*

J'espère que cela pourra aider.

0
BastiBen

comme ça 

git --ignored myfolder

Et affichera le statut que pour myfolder

0
Alex

Les étapes suivantes fonctionnent pour les fichiers non suivis seulement ..____. Ces informations s'appliquent à la configuration suivante:

Platform: linux

Git version: git version 1.8.3.1

Mettez la liste des fichiers à ignorer dans le fichier "exclure" présent à l'emplacement suivant.

<path till .git directory>/.git/info/exclude

Contenu initial du fichier "exclure"

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

Contenu final du fichier "exclure"

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~


*.tar
*.gch
0
harshul ar