web-dev-qa-db-fra.com

Forcer git à mettre à jour .gitignore

J'ai un fichier .gitignore, et il ignore certains fichiers. J'ai mis à jour le fichier .gitignore (j'ai supprimé certains noms de fichiers et ajouté des noms de fichiers). Ceci n'est pas reflété dans git status. Comment puis-je forcer git à mettre à jour ces modifications, afin de suivre les fichiers qui ne sont pas suivis auparavant et inversement. 

J'ai essayé cette question , mais tous mes fichiers ne sont toujours pas suivis (selon mon .gitignore mis à jour). (En termes simples, comment puis-je forcer git à rétracter des fichiers une fois que .gitignore est mis à jour ou supprimé). 

16
user4576114

Si vous souhaitez ajouter tous les fichiers, supprimez tous les noms de fichiers du fichier .gitignore, pas le fichier .gitignore et le commit, puis essayez

git config --global core.excludesfile ~/.gitignore_global

Certains fichiers sont ignorés par git en fonction du système d’exploitation (comme .dll dans Windows). Pour plus de informations

À présent

git add .

git status

git commit -m "your message"

Ou

Vous pouvez essayer un simple bidouillage, cela peut ne pas fonctionner. Supprimez tous les noms de fichiers du fichier .gitignore et ajoutez cette ligne !*.*, puis add et commit.

4

Vous devrez d'abord effacer la cache.

  • git rm -r --cached .
  • git add .
  • git commit -m "Suitable Message"
42
Shravan40

Vous pouvez résoudre ce problème en supprimant le cache de ces fichiers spécifiques pour lesquels vous rencontrez ce problème. Le problème que vous avez mentionné se produit lorsque vous avez validé certains fichiers une fois, puis que vous les ajoutez dans .gitignore later.

git rm -r --cached <your_file.extension>
git commit -am "Suitable Message"

La même solution est proposée par @ sharvan40 ci-dessus, mais vous n'avez pas besoin de supprimer le cache pour tous les fichiers. Il crée un nouveau commit pour tous vos fichiers.

1
Rajdeep Gautam

En supposant ici que votre répertoire de travail actuel est vide.

Vous pouvez vérifier quels fichiers sont actuellement suivis par git en utilisant git ls-files. Si vous avez beaucoup de fichiers, vous pouvez utiliser git ls-files | grep hello.txt pour savoir si git suit ce fichier spécifique.

Si c'est le suivi, utilisez git rm hello.txt pour le désarchiver (comme Tim l'a mentionné dans son comment ). Commencez peut-être par commettre d'abord cet état non suivi, puis ajoutez-le à votre .gitignore lors de votre prochain commit. J'ai déjà observé des comportements bizarres dans le passé lorsque j'essayais d'ignorer et de supprimer le même commit. 

0
Vidur