web-dev-qa-db-fra.com

gitignore n'ignore pas le dossier

Dans la racine de mon projet, j'ai un dossier foo. Dans le dossier foo, j'ai un dossier bar. Je voudrais ignorer toutes les modifications apportées à tous les fichiers de mon dossier bar. J'ai ceci dans mon gitignore:

/foo/bar

Le dossier est vérifié: il existe et il contient les fichiers à ignorer. gitignore est committed. Cependant, j'ai un fichier dans lequel je fais une moification et qui est dans mon dossier bar. Quand je tape

git status

dans mon git bash Je vois le fichier qui aurait dû être ignoré. Quelle pourrait être la raison et comment puis-je réussir à ignorer tous les fichiers contenus dans mon dossier de barres?

Notez que les fichiers étaient auparavant ignorés avec la même ligne, mais que je devais supprimer temporairement cette ligne pour commit quelque chose sur le serveur. Après le commit, j'ai remis la ligne dans le gitignore. C’était il ya quelque temps, mais j’ai observé que les fichiers se trouveraient au git status. Je m'attendrais à pouvoir modifier les fichiers ignorés sans qu'ils apparaissent dans le git status.

99
Lajos Arpad

Je suppose que ce dossier a déjà été vérifié dans git?

Courir git rm -r --cached <folder> et vérifiez à nouveau.

234
Reck

Pour moi, la réponse acceptée faisait partie de la solution, pas de la solution complète. Peut-être que les autres étapes que je suis sur le point de publier étaient évidentes, mais je les ai ratées en premier. Voici les mesures que j'ai prises pour assurer mon .gitignore fichier ignorait le dossier que je voulais ignorer:

  1. Commettez toutes les modifications nécessaires pour corriger/modifier.
  2. Exécutez cette commande: git rm -r --cached . (qui supprime tout de l’index git afin d’actualiser votre référentiel git)
  3. Puis lancez cette commande: git add . (pour tout rajouter au repo)
  4. Enfin, validez ces modifications avec git commit -m ".gitignore Fixed"

Vous pouvez trouver le lien vers l'article à partir duquel j'ai trouvé la solution ici .

19
sikanderBabwani

J'avais ce problème et je me suis rendu compte que git ignorait correctement les fichiers/dossiers, mais mon éditeur de code (Visual Studio Code) était juste un buggy et non pas "en grisonnant correctement" dans la barre latérale de l'interface utilisateur. J'ai redémarré VSCode et ils ont été grisés comme prévu.

3
Mark Jackson

En complément du réponse acceptée

git rm -r --cached /foo/bar/
git status

Lorsque je fais cela, le terminal affiche un tas de rm pour les fichiers de ce répertoire. Donc, pour empêcher un autre commit qui pourrait affecter inutilement la télécommande, je l’ai fait:

git reset HEAD *
git status

Après cela, rien à commettre et quand je modifie des fichiers dans /foo/bar/ et faire un git status je reçois toujours nothing to commit.

2
learnsomemore