Unable to remove files recursively from Git
我想删除git中位于~/bin/的所有文件。
我跑
1 | git rm -r --cached ~/.vim/* # Thanks to Pate in finding --cached! |
我得到
1 | fatal: pathspec '.vim/colors' did not match any files |
号
此错误message建议我使用以下路径,因为~/.vim/**不起作用
1 2 3 | ~/.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 |
如何从git中删除~/.vim处的所有文件和子目录?
——
1 2 | git rm -r --cached ~/.vim/* fatal: pathspec '.vim/colors' did not match any files |
。
1/您不需要"EDOCX1"〔0〕:
1 | git rm -r --cached ~/.vim |
将处理所有跟踪的子文件。
2/EDOCX1[1]只是指您在1/中列出的命令生效之前尝试过的命令之一,并且没有其他文件可删除!
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 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 |
。
是否要删除它们,即使存在本地修改?
1 | git rm -rf bin/* |
还是要从索引中删除但保留文件本身?
1 | git rm -r --cached bin/* |
号
同时尝试:
1 | git help rm |
或者可能是您试图递归删除的目录在.gitignore列表中。我刚刚遇到这个。我的忽略列表中有./vendors,在./vendors下有许多目录,但是因为忽略了vendors中的任何内容,所以实际上它不会删除类似./vendors/assetic的内容,因为它实际上不在repo中。我忘了它在忽略列表中:)
你应该先了解一下
应用程序看不到
为了更好地理解这一点,把
1 | git rm -r --cached ~/.vim/* |
。
您将看到每个单独的匹配,包括程序不知道如何操作的内容(包括