Dlaczego nie ma „pathspec”, gdy próbuję usunąć folder w Git?

9

Próbuję usunąć folder z mojego repozytorium Git za pomocą

git rm folderToRemove

ale Git wydaje ten błąd, gdy próbuję to zrobić.

fatal: pathspec 'siteFiles/applicationFiles/templates/folderToRemove' 
did not match any files

Mój obecny katalog to „szablony”. Uważam ten błąd za dziwny, ponieważ mogę cdprzejść do folderu „folderToRemove”, więc jest oczywisty. Co oznacza ten błąd?

David Faux
źródło

Odpowiedzi:

17

Git nie wersjonuje katalogów, tylko „treść” (zawartość katalogu lub pliki)

nie pasuje do żadnych plików

Oznacza to, że nie ma w nim pliku do usunięcia folderToRemove, jak wspomniałem w „ Nie można usunąć plików rekurencyjnie z Gita ”.
Możesz teraz usunąć (Windows dellub Unix rm) sam katalog.

Jak opisano w „ Usuwanie pustych katalogów w Git ”, możesz także uruchomić:

git clean -fd

Jednak:

Ostrzeżenie: Polecenie clean usuwa wszystkie pliki w bieżącej kopii roboczej, które nie są śledzone przez git. To dobry sposób na utratę pracy, jeśli nie dodałeś nowych plików do git. Zawsze biegaj git addwcześniej git clean.

Uruchom raczej najpierw:

git clean -d -x -n

Jak wyjaśniono w „ Jak wyczyścić mój lokalny katalog roboczy w git? ”.

VonC
źródło
ale jak mogę „wyczyścić” pilota innej osoby, gdy wykonuje ona pociągnięcie?
Ilea Cristian
@IleaCristian ze względu na rozproszony charakter Git, nie czyścisz pilota, tylko własny klon.
VonC
Problem polega na tym, że nie dokonujemy ostatecznej wersji. Pliki projektu (które widzi IDE) to w rzeczywistości niektóre foldery z „rozszerzeniem” (myproj.xcworkspace lub myproj.xcodeproj). Chciałem usunąć xcworkspace i zostawić tylko xcodeproj. Zasadniczo chciałem zmusić ludzi tworzących kompilację do używania tylko pliku xcodeproj.
Ilea Cristian