2011-07-08 11 views
35

Nauczyłem się how to exclude an entire directory in git (dodać linię bin/ do .gitignore). I nauczyłem how to ignore files "after the fact" (czyli po tym, jak został dodany do git):Ignorowanie katalogu z repozytorium Git po jego dodaniu

git rm --cached <filename> 

Jak mogę zignorować całą katalogu (np bin/) po został dodany do repo Git?

Próbowałem git rm --cached bin/ ale dostałam był błąd:

fatal: pathspec 'bin/' did not match any files

Kiedy próbowałem (w katalogu głównym, gdzie .git istnieje) git rm --cached MyProj/bin/ błąd jest inna:

fatal: not removing 'MyProj/bin/' recursively without -r

Co czy to znaczy i czy będę musiał to teraz zatwierdzić i/lub rozgałęzić?

+3

Zwróć uwagę na tag '-r' w mojej odpowiedzi. Musisz użyć tego dla 'recursive' :) – Nic

+0

@melee To działało! Ale teraz mam inne pytanie. Zobacz aktualizację. :) – WinWin

Odpowiedz

65

udało mi się uzyskać tej pracy z git rm -r --cached bin/ (uwaga rekurencyjne -r) u nasady repo - mówisz znalezienie katalogi bin i ich untracking?

Zanim zostanie uwzględnione wykluczenie, trzeba będzie uzyskać commit.

Właśnie zobaczyłem, że byłeś w Windows. To było w Terminalu na OSX, tylko w heads-upie.

+0

Tak, jestem w systemie Windows, ale używam Cygwin, który zapewnia całe doświadczenie podobne do Uniksa ... Zobacz moją aktualizację powyżej. Nie jestem pewien, czy rozumiem, co masz na myśli przez "znajdowanie". Naprawdę mam tylko jeden podkatalog bin/'pod moim projektem. Katalog '.git' jest jednak rodzajem katalogu mojego projektu (tzn. Całe śledzenie git zaczyna się od jednego katalogu powyżej, który może zawierać kilka projektów). Dzięki i +1 za spostrzeżenia. – WinWin

+0

Hmm. Oto pomysł; dotknij lub edytuj jeden z plików w katalogu bin, a następnie spróbuj uzyskać status. Jeśli to działa, nie powinny już śledzić. – Nic

+0

@WinWin przepraszam za to, że byłam na telefonie i straciłam część twojej edycji. Cieszę się, że udało ci się to wymyślić! – Nic

Powiązane problemy