2009-06-28 13 views
28

Chcę usunąć wszystkie pliki z Git w ~/bin /.Nie można usunąć plików rekursywnie z Git

biegnę

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

uzyskać

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

Ten błąd messsage sugeruje mi użyć następujących ścieżek, ponieważ ~/.vim/** nie działa

~/.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 

Jak usunąć wszystkie pliki i podkatalogi z ~/.vim z Git?

-

Odpowiedz

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

1/Nie potrzebujemy '*':

git rm -r --cached ~/.vim 

zadba o każdy śledzone sub-plików.

2/fatal: pathspec '.vim/colors' did not match any files oznacza po prostu jedno z twoich poleceń, które wypróbowałeś zanim ten wymieniony w 1/zadziałał i nie ma już pliku do usunięcia!

# 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 
+0

@Vonc: Dziękuję za pomoc! –

9

chcesz je usunąć, nawet jeśli nie są lokalne modyfikacje?

git rm -rf bin/* 

Czy chcesz usunąć z indeksu, ale zachować pliki samodzielnie?

git rm -r --cached bin/* 

starają się również:

git help rm 
+0

@Pate: Chcę usunąć pliki z Git tak, że mam pliki w moim komputerze po usunięciu. –

+0

Ta odpowiedź jest podstawą zmienionego pytania. –

0

Powinieneś zrozumieć, co najpierw robi *.

Aplikacje nie widzą * (lub innych znaków globu) - otrzymują wszystkie dopasowania globu jako indywidualne argumenty.

Aby to lepiej zrozumieć, umieścić echo przed swoim pierwszym poleceniu i zobaczyć, co wypisuje:

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

Zobaczysz każdy pojedynczy mecz, w tym rzeczy, że program nie umieją działają na (co obejmuje .vim/colors).

+0

Uważam, że ta odpowiedź powinna zawierać opisane echo, a także rozwiązanie rzeczywistego problemu, jaki ma OP. – superbeck

1

Może to oznaczać, że katalog, który próbujesz usunąć, znajduje się na liście .gitignore. Właśnie to spotkałem. Mam ./vendors na mojej liście ignorowanych, a jest kilka katalogów pod ./vendors, ale ponieważ wszystko w sprzedawcach jest ignorowane, to faktycznie nie usuwa niczego jak ./vendors/assetic, ponieważ nie jest to w repozytorium. Zapomniałem, że był na liście ignorowanych :)

+0

... dzięki ... –

Powiązane problemy