无法从混帐递归地删除文件(Unable to remove files recursively fr

2019-07-29 08:02发布

我想删除从Git的所有文件在〜/ bin /中。

我跑

git rm -r --cached ~/.vim/*                      # Thanks to Pate in finding --cached!

我得到

fatal: pathspec '.vim/colors' did not match any files

这个错误讯息话题建议我使用下列路径,因为〜/ vim的/ **不起作用

~/.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的所有文件和子目录?

-

Answer 1:

 git rm -r --cached ~/.vim/*   
 fatal: pathspec '.vim/colors' did not match any files

1 /你不需要的“ * ”:

 git rm -r --cached ~/.vim

将采取的任何跟踪的分档照顾。

2 / fatal: pathspec '.vim/colors' did not match any files只是意味着你在1中列出的一个尝试过你的命令之一/工作过,并没有更多的文件删除!

# 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


Answer 2:

要删除他们,即使有本地修改?

git rm -rf bin/*

或者你想从索引中移除,但保留自己的文件?

git rm -r --cached bin/*

也尝试:

git help rm


Answer 3:

或者,它可能是你想递归地删除目录中的.gitignore列表。 我只是遇到了这个。 我在我的忽略列表./vendors,并有一堆目录下./vendors但由于供应商都被忽略,它实际上并不像删除任何./vendors/assetic,因为它不是真正的回购。 我忘了这是在忽略列表:)



Answer 4:

您应该明白*确实有点第一。

应用程序没有看到* (或其他的通配符) -他们收到的所有的水珠个别参数的匹配。

为了更好的理解,把echo在你的第一个命令前,看看它打印出:

 git rm -r --cached ~/.vim/*

你会看到每一个人的比赛,其中包括东西,程序不知道如何操作(这包括.vim/colors )。



文章来源: Unable to remove files recursively from Git
标签: git rm