La solution mentionnée dans " Le fichier .gitignore n'est pas ignoré "est un peu extrême, mais devrait fonctionner :
# rm all files
git rm -r --cached .
# add all files as per new .gitignore
git add .
# now, commit for new .gitignore to apply
git commit -m ".gitignore is now working"
( assurez-vous de commiter d'abord les changements que vous voulez garder pour éviter tout incident comme jball037 commentaires ci-dessous .
Le site --cached
Cependant, cette option permet de conserver vos fichiers intacts sur votre disque).
Vous disposez également d'une autre solution plus fine dans l'article de blog " Faire en sorte que Git ignore les fichiers déjà suivis " :
git rm --cached `git ls-files -i --exclude-standard`
Bassim suggère dans son montage :
Fichiers avec des espaces dans leurs chemins
Si vous obtenez un message d'erreur comme fatal: path spec '...' did not match any files
il peut y avoir des fichiers avec des espaces dans leur chemin.
Vous pouvez supprimer tous les autres fichiers avec l'option --ignore-unmatch
:
git rm --cached --ignore-unmatch `git ls-files -i --exclude-standard`
mais les fichiers qui ne correspondent pas resteront dans votre dépôt et devront être supprimés explicitement en mettant leur chemin entre guillemets :
git rm --cached "<path.to.remaining.file>"
2 votes
N'est-ce pas similaire à stackoverflow.com/questions/1139762/gitignore-file-not-ignoring ?
0 votes
C'est possible, mais cette solution supprimerait-elle les fichiers déjà commités correspondant au nouveau gitignore ?
131 votes
+1 pour avoir inventé le mot "ignoration".
0 votes
Duplicata possible de Ignorer les fichiers qui ont déjà été livrés dans un dépôt Git.
4 votes
fr.wiktionary.org/wiki/ignoration @AasmundEldhuset, c'est officiel.
2 votes
@user770 : Aujourd'hui, j'ai appris !
0 votes
Duplicata possible de Comment faire en sorte que Git "oublie" un fichier qui a été suivi mais qui est maintenant dans .gitignore ?