Jak usunąć nieśledzone pliki lokalne z bieżącego działającego drzewa?
git
branch
git-branch
Tylko czytać
źródło
źródło
git clean
ma teraz tryb interaktywny ! Zobacz moją odpowiedź na to drugie pytanie : git 1.8.4+git clean
odpowiedziach poniżej możesz również użyć lub wprowadzić pewne odmiany, w tym wersję interaktywną, aby usunąć tylko wybrane pliki, ale tryb interaktywny może być uciążliwy. Cokolwiek zrobisz, upewnij się, że rozumiesz, cogit clean
zostanie usunięte lub którego użyjesz,--dry-run
aby poinformować Cię bez usuwania niczego.rm files-to-be-deleted
Odpowiedzi:
Krok 1 ma pokazać, co zostanie usunięte za pomocą
-n
opcji:Clean Step - uwaga: spowoduje to usunięcie plików :
git clean -f -d
lubgit clean -fd
git clean -f -X
lubgit clean -fX
git clean -f -x
lubgit clean -fx
Zwróć uwagę na różnicę wielkości znaków
X
dla dwóch ostatnich poleceń.Jeśli
clean.requireForce
w twojej konfiguracji jest ustawiona wartość „true” (domyślna), musisz określić,-f
inaczej nic się nie wydarzy.Ponownie zobacz
git-clean
dokumentację, aby uzyskać więcej informacji.źródło
git clean -f
działa tylko w katalogu, w którym się nazywa (i podkatalogach). Jeśli chcesz wyczyścić całą kopię roboczą, powinieneś wywołać ją w katalogu głównym.git clean -f :/
działa tak, jakbyś uruchomił go w katalogu repozytorium root. Zobacz także późniejsze odpowiedzi uwzględniające również podmoduły zgit clean -ffxd :/
Użyj,
git clean -f -d
aby upewnić się, że katalogi również zostały usunięte.Tak naprawdę niczego nie usuwaj, po prostu pokaż, co można zrobić.
lub
Usuń nieśledzone katalogi oprócz nieśledzonych plików. Jeśli nieśledzony katalog jest zarządzany przez inne repozytorium Git, domyślnie nie jest usuwany. Użyj tej
-f
opcji dwa razy, jeśli naprawdę chcesz usunąć taki katalog.Następnie możesz sprawdzić, czy naprawdę nie ma plików
git status
.źródło
git clean -n -d
git clean -nd
igit clean -fd
.Dziwi mnie, że nikt wcześniej o tym nie wspominał:
To oznacza interakcję, a otrzymasz szybki przegląd tego, co zostanie usunięte, oferując możliwość włączenia / wyłączenia plików, których dotyczy problem. Ogólnie rzecz biorąc, nadal szybciej niż uruchomienie obowiązkowe
--dry-run
przed prawdziwym czyszczeniem.Będziesz musiał wrzucić,
-d
jeśli chcesz zająć się również pustymi folderami. Na koniec tworzy fajny alias:To powiedziawszy, dodatkowe trzymanie w ręce interaktywnych poleceń może być męczące dla doświadczonych użytkowników. Obecnie używam tylko wspomnianego już
git clean -fd
źródło
git-clean
- Usuń nieśledzone pliki z działającego drzewaźródło
Jeśli nieśledzony katalog jest własnym repozytorium git (np. Submoduł), musisz użyć
-f
dwa razy:git clean -d -f -f
źródło
Prosty sposób na usunięcie nieśledzonych plików
Aby usunąć wszystkie nieśledzone pliki, najprostszym sposobem jest dodanie ich wszystkich i zresetowanie repozytorium jak poniżej
źródło
git add --all
przezgit add .
. Możesz to zrobić w skrócie w trybie onelinegit add . && git reset --hard HEAD
(bądź bardzo ostrożny z tym poleceniem) .git clean
?git clean
najwyraźniej usuwa również wszystko, co jest ignorowane. Właśnie usunąłem mójnode_modules
folder. W ten sposób wszystkie pliki z wyjątkiem tych zignorowanych zostaną najpierw wyzerowane, a następnie usunięte przez wykonanie resetu. Zignorowane pliki nie zostaną dotknięte.git clean -n
mimo to przed prawdziwym usunięciem (lub użyciemgit clean -i
).git clean
usuwa zignorowane pliki tylko wtedy, gdy użyjesz opcji-x
lub-X
, w przeciwnym razie usuwa tylko nieśledzone pliki.Podoba mi się,
git stash push -u
ponieważ możesz je wszystkie cofnąćgit stash pop
.EDYCJA: Znalazłem również sposób na wyświetlenie nieśledzonego pliku w skrytce (np.
git show stash@{0}^3
) Https://stackoverflow.com/a/12681856/338986EDYCJA 2:
git stash save
jest przestarzała na korzyśćpush
. Dzięki @ skryptu-wilku.źródło
-u
jest równoważne z--include-untracked
. Możesz znaleźć pomoc wgit help stash
.save
Opcja została zastąpionapush
, który robi to samo, ale więcej. Możesz przeczytać więcej tutaj, /programming/44680028/whats-the-difference-between-git-stash-save-and-git-stash-push/44681952Tego zawsze używam:
W przypadku bardzo dużego projektu możesz go uruchomić kilka razy.
źródło
git-clean jest tym, czego szukasz. Służy do usuwania nieśledzonych plików z drzewa roboczego.
źródło
Jeśli to konieczne, aby usunąć nieśledzone pliki z określonego podkatalogu,
I połączony sposób usuwania nieśledzonych plików / plików i plików ignorowanych.
po tym będziesz modyfikować pliki tylko w
git status
.źródło
Usuń wszystkie dodatkowe foldery i pliki w tym repozytorium + submodułach
To sprawia, że jesteś w takim samym stanie jak świeży klon.
Usuń wszystkie dodatkowe foldery i pliki w tym repozytorium, ale nie jego podmoduły
Usuń dodatkowe foldery, ale nie pliki (np. Folder kompilacji lub dzienników)
Usuń dodatkowe foldery + zignorowane pliki (ale nie nowo dodane pliki)
Jeśli plik nie został zignorowany i nie został jeszcze zameldowany, pozostaje. Zwróć uwagę na duże X.
Nowy tryb interaktywny
źródło
git clean -fd
usuwa kataloggit clean -fX
usuwa zignorowane plikigit clean -fx
usuwa zignorowane i niezauważone plikimogą być używane wszystkie powyższe opcje w kombinacji jako
git clean -fdXx
po więcej pomocy zajrzyj do instrukcji git
źródło
git clean -fdXx
wyświetla komunikat o błędzie „fatal: -x i -X nie mogą być używane razem” (przy użyciu git-2.8). Aby podać ostatnie zdanie w odpowiedzi, podaj link do instrukcji git. PozdrawiamOK, usuwanie niechcianych nietrackowanych plików i folderów jest łatwe przy użyciu
git
w wierszu poleceń, po prostu zrób to w następujący sposób:Sprawdź to jeszcze raz, ponieważ spowoduje to usunięcie plików i folderów bez tworzenia historii ...
Również w tym przypadku
-f
oznacza siłę i-d
oznacza katalog ...Jeśli więc chcesz usunąć tylko pliki, możesz użyć
-f
tylko:Jeśli chcesz usunąć (katalogi) i pliki, możesz usunąć tylko nieśledzone katalogi i pliki w następujący sposób:
Możesz także użyć
-x
flagi do włączenia plików, które są ignorowane przez git. Byłoby to pomocne, jeśli chcesz usunąć wszystko.Dodanie
-i
flagi powoduje, że git prosi o pozwolenie na usuwanie plików jeden po drugim w podróży.Jeśli nie jesteś pewien i chcesz najpierw sprawdzić, dodaj
-n
flagę.Użyj,
-q
jeśli nie chcesz zobaczyć żadnego raportu po pomyślnym usunięciu.Tworzę również poniższy obrazek, aby był bardziej niezapomniany, zwłaszcza że widziałem, jak wielu ludzi myli się
-f
czasem, czyszcząc folder lub jakoś go pomieszać!źródło
Lepszym sposobem jest użycie: git clean
Usuwa nieśledzone pliki, w tym katalogi
(-d)
i pliki ignorowane przezgit (-x)
.Również zastąpienie
-f
argument z-n
aby przeprowadzićdry-run
lub-i
dla trybu interaktywnego i powie to, co zostanie usunięty.źródło
Interaktywne podejście użytkownika:
-i dla interaktywnego
-f dla wymuszenia
-d dla katalogu
-x dla ignorowanych plików (dodaj, jeśli wymagane)
Uwaga: Dodaj -n lub --dry-run, aby sprawdzić, co zrobi.
źródło
Lifehack dla takiej sytuacji, którą właśnie wymyśliłem i wypróbowałem (to działa idealnie):
Strzec się! Pamiętaj, aby zatwierdzić wszelkie niezbędne zmiany (nawet w plikach bez śledzenia) przed wykonaniem tej czynności .
źródło
git add .
git commit -m 'about to delete'
git reset --hard HEAD~
git add . && git reset --hard HEAD
git add . && git reset --hard
git reset --hard
resetuje wszystkie niezaangażowane zmiany, ALE NIEŚLEDZONE PLIKI do stanu ostatniego zatwierdzenia. Właśnie dlatego najpierw potrzebujemygit add .
- aby etapy wszystkie nieśledzone pliki (więc też zostały zresetowane)git clean -f -d -x $(git rev-parse --show-cdup)
stosuje czyste do katalogu głównego, bez względu na to, jak go wywołać w drzewie katalogów repozytorium. Używam go cały czas, ponieważ nie zmusza cię to do opuszczenia folderu, w którym pracujesz teraz, i pozwala wyczyścić i zatwierdzić z miejsca, w którym jesteś.Bądź pewny, że flagi
-f
,-d
,-x
dopasowane do potrzeb:Dostępne są również inne flagi, po prostu sprawdź
git clean --help
.źródło
Dla mnie działały tylko:
We wszystkich innych przypadkach otrzymywałem komunikat „Skipping Directory” dla niektórych podkatalogów.
źródło
-x
i po prostugit clean -ffd
unikałem kasowania plików w .gitignore.Jeśli chcesz tylko usunąć pliki wymienione jako nieśledzone przez „git status”
Wolę to niż „git clean”, ponieważ „git clean” usunie pliki ignorowane przez git, więc twoja następna kompilacja będzie musiała odbudować wszystko i możesz stracić ustawienia IDE.
źródło
Aby wiedzieć, co zostanie usunięte przed faktycznym usunięciem:
git clean -d -n
Wyprowadzi coś takiego:
Usunąłby sample.txt
Aby usunąć wszystko wymienione w danych wyjściowych poprzedniego polecenia:
git clean -d -f
Wyprowadzi coś takiego:
Usuwanie sample.txt
źródło
Aby usunąć nieśledzone pliki, należy najpierw użyć polecenia, aby wyświetlić pliki, na które będzie miało wpływ czyszczenie
Spowoduje to wyświetlenie listy plików, które zostaną usunięte. Teraz, aby faktycznie usunąć te pliki, użyj tego polecenia:
źródło
Zachowaj ostrożność podczas uruchamiania polecenia `git clean`.
Zawsze używaj
-n
przed uruchomieniem właściwego polecenia, ponieważ pokaże, jakie pliki zostaną usunięte.Domyślnie
git clean
usuwa tylko nieśledzone pliki, które nie są ignorowane. Każdy plik pasujący do wzorca w .gitignore lub innych plikach ignorowania nie zostanie usunięty. Jeśli chcesz usunąć te pliki, możesz dodać-x
polecenie do polecenia clean.Dostępny jest również tryb interaktywny
-i
z poleceniem czyszczeniaAlternatywnie
Jeśli nie masz 100% pewności, że usunięcie niezaangażowanej pracy jest bezpieczne, możesz zamiast tego użyć ukrywania
Będzie również wyczyścić katalog ale daje elastyczność, aby pobrać pliki w dowolnym momencie za pomocą zapas z zastosowania lub pop . Następnie możesz wyczyścić skrytkę, używając:
źródło
git stash save and type some comment as to what this stash was for
git clean -f to remove untracked files from working directory.
Omówiłem tutaj podstawy mojego bloga, git-intro-basic-polecenia
źródło
uggested Polecenie usuwania nieśledzonych plików z git docs jest git clean
oczyść się - Usuń nieśledzone pliki z drzewa roboczego
Sugerowana metoda: tryb interaktywny,
git clean -i
dzięki któremu możemy mieć nad nim kontrolę. zobacz pozostałe dostępne opcje.Dostępne opcje:
Wyjaśnienie:
1. -d
Usuń nieśledzone katalogi oprócz nieśledzonych plików. Jeśli nieśledzony katalog jest zarządzany przez inne repozytorium Git, domyślnie nie jest usuwany. Użyj opcji -f dwa razy, jeśli naprawdę chcesz usunąć taki katalog.
2. -f, --force
Jeśli zmienna konfiguracyjna Git clean.requireForce nie jest ustawiona na false, git clean odmówi uruchomienia, chyba że podano -f, -n lub -i.
3. -i, --interactive
Pokaż, co można zrobić, i czyść pliki interaktywnie. Szczegółowe informacje zawiera „Tryb interaktywny”.
4. -n, --dry-run
Tak naprawdę niczego nie usuwaj, po prostu pokaż, co można zrobić.
5. -q, - cicho
Bądź cicho, zgłaszaj tylko błędy, ale nie pliki, które zostały pomyślnie usunięte.
6. -e, --exclude =
Oprócz wzorców znalezionych w .gitignore (dla katalogu) i $ GIT_DIR / info / exclude, należy również uwzględnić te wzorce w zestawie obowiązujących reguł ignorowania.
7. -x
Nie używaj standardowych reguł ignorowania odczytanych z .gitignore (dla katalogu) i $ GIT_DIR / info / exclude, ale nadal używaj reguł ignorowania podanych z opcjami -e. Umożliwia to usunięcie wszystkich nieśledzonych plików, w tym produktów kompilacji. Można tego użyć (ewentualnie w połączeniu z git reset), aby stworzyć nieskazitelny katalog roboczy do testowania czystej wersji.
8. -X
Usuń tylko pliki ignorowane przez Git. Może to być przydatne do odbudowania wszystkiego od zera, ale zachowaj ręcznie utworzone pliki.
źródło
uggested
ale to tylko „uggestion
lolNormalne
git clean
polecenie nie usuwa nieśledzonych plików z moimgit version 2.9.0.windows.1
.źródło
Możemy łatwo usunąć lokalne nieśledzone pliki z bieżącego drzewa roboczego git, używając poniższych komentarzy git.
Przykład:
Linki:
źródło
git clean -ffdx
jest rozwiązaniemźródło
usunie nieśledzone pliki z bieżącego gita
jeśli chcesz usunąć katalogi i pliki, spowoduje to usunięcie tylko nieśledzonych katalogów i plików
źródło
oh-my-zsh z zsh zapewnia te wspaniałe aliasy poprzez wtyczkę git. Mogą być również używane w bashu.
gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'
gclean
usuwa nieśledzone katalogi oprócz nieśledzonych plików .gpristine
mocno zresetuj lokalne zmiany, usuń nieśledzone katalogi, nieśledzone pliki i nie używaj standardowych reguł ignorowania odczytanych z .gitignore (dla katalogu) i $ GIT_DIR / info / exclude, ale nadal używaj reguł ignorowania podanych z opcjami -e. Umożliwia to usunięcie wszystkich nieśledzonych plików, w tym produktów kompilacji. Można tego użyć (ewentualnie w połączeniu z git reset), aby stworzyć nieskazitelny katalog roboczy do testowania czystej kompilacji .źródło
bash
. Zredagowałem swoją odpowiedź, aby to odzwierciedlić.Lubię używać
git stash
polecenia, później można uzyskać ukryte pliki i zmiany.git clean
jest również dobrą opcją, ale całkowicie zależy od twoich wymagań. oto wyjaśnienie git stash i git clean, 7.3 Git Tools - Stashing and Cleaningźródło