Je veux supprimer tous les fichiers de Git dans ~/bin /.
Je cours
git rm -r --cached ~/.vim/* # Thanks to Pate in finding --cached!
Je reçois
fatal: pathspec '.vim/colors' did not match any files
Ce message d'erreur me suggère d'utiliser les CHEMINS suivants, car ~/.vim/** ne fonctionne pas
~/.vim/* # I get the error
~/.vim/*/*/* # This removes files from the index at ~/.vim/folderA/folderB/file1.txt
~/.vim/*/* # similar error as to the first PATH
Comment pouvez-vous supprimer tous les fichiers et sous-répertoires de ~/.vim de Git?
-
git rm -r --cached ~/.vim/*
fatal: pathspec '.vim/colors' did not match any files
1/Vous n'avez pas besoin du '*
':
git rm -r --cached ~/.vim
prendra soin de tous les sous-fichiers suivis.
2/fatal: pathspec '.vim/colors' did not match any files
signifie simplement qu'une de vos commandes que vous avez essayée avant que celle listée en 1/ne fonctionne, et qu'il n'y ait plus de fichier à supprimer!
# to test that command, first reinitialize the state of the repository
# save first if you have any other current modifications
$ git reset --hard
# then check the rm works
$ git rm -r --cached ~/.vim
rm '.vim/aPath/aFile1'
rm '.vim/aSecondPath/aFile2'
rm '.vim/aThirdPath/aFile3'
# try it again
$ git rm -r --cached ~/.vim
fatal: pathspec '.vim/colors
Vous souhaitez les supprimer même s'il y a des modifications locales?
git rm -rf bin/*
Ou souhaitez-vous supprimer de l'index mais conserver les fichiers eux-mêmes?
git rm -r --cached bin/*
Essayez également:
git help rm
Ou il se peut que le répertoire que vous essayez de supprimer récursivement soit dans la liste .gitignore. Je viens de rencontrer cela. J'ai ./vendors dans ma liste d'ignorance, et il y a un tas de répertoires sous ./vendors mais parce que tout dans les fournisseurs est ignoré, il ne supprime en fait rien comme ./vendors/assetic parce qu'il n'est pas réellement dans le repo. J'ai oublié que c'était dans la liste des ignorés :)
Vous devez comprendre ce que *
fait un peu d'abord.
Les applications ne voient pas *
(ou d'autres caractères de globbing) - ils reçoivent toutes les correspondances du glob en tant qu'arguments individuels.
Pour mieux comprendre cela, mettez echo
devant votre première commande et voyez ce qu'elle affiche:
git rm -r --cached ~/.vim/*
Vous verrez chaque correspondance individuelle, y compris les éléments sur lesquels le programme ne sait pas comment fonctionner (ce qui inclut .vim/colors
).