176 votes

Garder les fichiers ignorés hors du statut git

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

Est-il normal que Git affiche ces fichiers ?

J'ai placé les informations relatives à l'ignorance dans un .gitignore dans le répertoire Root du dépôt Git et ils ne sont pas ajoutés lors de l'utilisation du fichier git add . mais il semble qu'ils ne soient pas totalement ignorés non plus, puisqu'ils apparaissent dans la liste susmentionnée et qu'ils ne sont pas ignorés. ne pas figurent dans la liste imprimée par git ls-files --others -i --exclude-standard . Seuls les fichiers correspondant aux motifs de ~/.gitignore s'y montrer.

Serait-ce parce qu'à un stade antérieur, je ne les ai pas ignorés et qu'ils ont donc été commis au moins une fois ?

0voto

badcat Points 6262

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 à conserver les fichiers doxygen dans mon arborescence des sources, j'ai donc simplement ajouté ce fichier à mon .gitignore (qui se trouve dans le répertoire le plus haut de mon arborescence des sources) :

docs/*

J'espère que cela vous aidera.

0voto

harshul ar Points 21

Les étapes suivantes fonctionnent pour fichiers non suivis seulement. Cette information s'applique à la configuration suivante :

Platform: linux

Git version: git version 1.8.3.1

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

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

Contenu initial du fichier "exclude

# 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 "exclude

# 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

0voto

Selon la réponse acceptée, vous pouvez considérer le fichier comme inchangé afin que tout ce que vous faites sur votre machine locale ne soit pas transféré sur la branche distante.

Quelque chose comme git update-index --assume-unchanged src/main/resources/config.properties où src/main.resources/config.properties est un exemple de chemin pour trouver ce fichier dans votre projet.

Maintenant, si vous voulez supprimer complètement le fichier de votre référentiel, vous pouvez utiliser remove cached au lieu de `git rm --cached

Ce scénario pourrait s'appliquer à la situation suivante :

Supposons que je dispose d'un fichier dans lequel je stocke des mots de passe. J'ai initialement enregistré ce fichier avec des informations erronées, juste pour que mes collègues aient le même fichier sur leurs machines. Cependant, j'ai ajouté les bons détails sur ma machine locale. Comment puis-je éviter que ce fichier soit accidentellement validé à nouveau avec les détails du mot de passe désormais corrects ?

0voto

ßãlãjî Points 95

Après avoir modifié le fichier .gitignore. suivez ces étapes simples

git rm -r --cached .

Run git add .

git commit -m "Commit message"

Pour vérifier

git status

-3voto

Alex Points 721

Comme ceci

git --ignored myfolder

Et n'affichera le statut que pour mon dossier

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