Jak szybko zrobić porządek w projekcie – polecenie git clean
Czasem zdarza mi się, że dodam do projektu jakiś plik i zanim wrzucę go do repozytorium, to on jednak okazuje się niepotrzebny. Do tej pory usuwałem ten plik ręcznie, albo w Eksploratorze Windows albo wpisując komendę:
rm <ścieżka do pliku>
gdzie z racji tego, że projekt jest spory, to ścieżka do pliku zawiera w sobie kilka folderów. Jest jednak lepsze rozwiązanie.
Git clean
Na szczęście w gicie można szybciej zrobić porządek. Z pomocą przychodzi polecenie:
git clean
Polecenie to usuwa wszystkie nieśledzone pliki (untracked files).
Przykład:
Dodałem do mojego testowego repozytorium plik untrack_file.txt.
Aby go usunąć wpisuję polecenie git clean
i…
Dostajemy błąd. Domyślne, aby polecenie zadziałało trzeba użyć jeszcze opcji -f (force) lub zmienić wartość ustawienia requireForce w konfiguracji. Jest to zabezpieczenie, aby przypadkiem nie usunąć plików. Wywołanie tego polecenia jest nie odwracalne, pliki zostaną usunięte tak samo jakbyśmy użyli polecenia rm.
Wpisujemy git clean -f
i już.
Domyślnie polecenie nie usunie pustych katalogów, więc trzeba jeszcze dołożyć opcję -d:
git clean -df
Polecenie to ma jeszcze kilka przydatnych opcji:
git clean -f -n
git clean -f --dry-run
Te dwie opcją oznaczają to samo. Powoduje uruchomienie polecenia “na sucho”. Pokaże Nam pliki, które zostałyby usunięte, jeśli byśmy wykonali polecenie bez tej opcji.
Kolejna przydatna opcja to:
git clean -xdf
Opcja -x
oznacza, aby usunął wszystkie nieśledzone pliki, włącznie z tymi ignorowanymi przez .gitignore. Jest to przydatne, jak chcemy przywrócić projekt do stanu jakbyśmy dopiero go sklonowali. Bez żadnych plików konfiguracyjnych IDE, bez żadnych artefaktów powstałych w czasie uruchamia projektu itd.
Interaktywne usuwanie
Do tej pory usuwaliśmy wszystko albo nic. Jednak jest opcja, aby usunąć tylko wybrane pliki: -i
.
git clean -dfi
Opcja ta włącza tryb interaktywny.
Dla testów dodałem do swojego przykładowego repozytorium 2 pliki oraz 2 katalogi:
some new file.txt
empty_folder
not_empty_folder\some other new file.txt
Po wykonaniu tego polecenia pokazuje Nam się menu z kilkoma opcjami do wyboru:
Na początku jest napisane jakie pliki mogą zostać usunięte. Następnie mamy 6 opcji do wyboru:
1: clean
Usunie wszystkie pliki wypisane wyżej.
2: filter by pattern
Po wybraniu tej opcji pokaże Nam się lista plików możliwych do usunięcia oraz miejsce do wpisania wzoru, których plików nie usuwać. Jako wildcard służy *
.
Jeśli nie chcemy usuwać plików lub folderów zaczynających się od słowa git to wpisujemy git*
i naciskamy ENTER. Dostajemy listę plików nie pasujących do wzoru.
Możemy wpisać kolejny wzór, dzięki temu możemy oznaczyć zestaw plików, których nie chcemy usunąć. Wyjściem z tej opcji jest naciśnięcie klawisza ENTER, co spowoduje powrót do menu głównego, jednak od razu nie usunie plików. Trzeba wybrać opcję clean
, która usunie pliki nie pasujące do naszego wcześniej wpisanego wzoru.
3: select by numbers
Pozwala wybrać co chcemy usunąć wpisując numery plików.
Każdy plik/katalog ma przypisany odpowiedni numer. Można wpisać więcej numerów oddzielonych przecinkiem. Po naciśnięciu ENTER, wybrane przez Nas pliki zostają oznaczone gwiazdką (*). Kolejne naciśnięcie przycisku ENTER powoduje powrót do menu głównego tego trybu. Wystarczy teraz wybrać opcję clean
i wybrane przez Nas pliki zostaną usunięte.
4: ask each
Po wybraniu tej opcji zostaniemy zapytani o każdy plik czy chcemy go usunąć.
W przypadku dużej ilości plików to rozwiązanie może być trochę meczące. W tej opcji pliki są od razu usuwane. Nie są oznaczane jak w przypadku opcji select by numbers
.
5: quit
Wyjście z tego trybu.
6: help
Pokaże wszystkie dostępne opcje z krótkim opisem.
Jak widać powyżej polecenie git clean
jest szybką metodą na zrobienie porządku w projekcie. Dzięki trybowi interaktywnemu możemy wybrać, które pliki mają zostać usunięte, a które nie. A dzięki opcji --dry-run
możemy najpierw sprawdzić co się usunie, dzięki czemu nie usuniemy plików w ciemno.
3 Komentarze
Dominik · 16 sierpnia 2018 o 9 h 46 min
Bardzo fajna porada! Dzięki za podzielenie się
adobrzyc · 5 września 2018 o 7 h 46 min
git clean -xdf
Tego właśnie było mi trzeba!
dotnetomaniak.pl · 14 sierpnia 2018 o 6 h 26 min
Jak szybko zrobić porządek w projekcie – polecenie git clean – Tomasz Prasołek
Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl