Usuwanie plików innych niż repozytorium za pomocą git?

100

Piszę kod Autotools i w trakcie opracowywania generowanych jest mnóstwo plików.

Czy w ogóle jest polecenie gitowi, aby usunął wszystkie pliki z katalogu, który nie jest częścią repozytorium?

Scott
źródło

Odpowiedzi:

182

Możesz użyć git-clean . To polecenie usunie nieśledzone pliki / katalogi. Domyślnie drukuje tylko to, co by usunął, bez ich usuwania.

Biorąc pod uwagę -fflagę do usuwania plików i -dflagę do usuwania pustych katalogów:

git clean -df

Usuwanie ignorowanych plików:

git clean -dfx
Lily Ballard
źródło
37
Wrzuć -xi wszystko jest tak dobre, jak świeżo sklonowane repozytorium.
Dustin,
2
Myślałem, że miał na myśli usunięcie plików z gita, a nie z samego systemu plików, ups!
Andrew Marshall,
Samo polecenie git cleanfaktycznie usunie wszystkie nieśledzone pliki - z wyjątkiem sytuacji, gdy zmienna konfiguracyjna Git clean.requireForce ma wartość true. Jeśli jest ustawiony na fałsz, wtedy -ff jest potrzebne do czyszczenia katalogów
Adam,
6
Najnowsze wersje git będą zawierać błędy bez żadnych parametrów; requireForce jest domyślnie ustawiony na true, więc aby wykonać próbę, potrzebujesz -n
Seb
1
śledzenie @Dustin: git clean -ixpokaże ci, co wyczyści i da ci menu opcji. Mój ulubiony.
wcochran