Jak usunąć lokalne (nie śledzone) pliki z bieżącego drzewa roboczego Gita
Jak usunąć nie śledzone pliki lokalne z bieżącego drzewa roboczego?
30 answers
Git-clean - usuwa nie śledzone pliki z drzewa roboczego
Synopsis
git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…
Opis
Czyści drzewo robocze, rekurencyjnie usuwając pliki, które nie są pod kontrolą wersji, zaczynając od bieżącego katalogu .
Zwykle usuwane są tylko pliki nieznane Gitowi, ale jeśli podano opcję
-x
, ignorowane pliki są również usuwane. Może to być na przykład przydatne do usunięcia wszystkich produktów kompilacji.Jeśli jakieś podano opcjonalne argumenty
<path>...
, dotyczy to tylko tych ścieżek.
Krok 1 to pokazanie, co zostanie usunięte za pomocą opcji -n
:
# Print out the list of files and directories which will be removed (dry run)
git clean -n -d
Clean Step - Uwaga: spowoduje to usunięcie plików :
# Delete the files from the repository
git clean -f
- aby usunąć katalogi, Uruchom
git clean -f -d
lubgit clean -fd
- aby usunąć ignorowane pliki, uruchom
git clean -f -X
lubgit clean -fX
- aby usunąć ignorowane i nie ignorowane pliki, uruchom
git clean -f -x
lubgit clean -fx
Uwaga różnica w przypadku na X
dla dwóch ostatnich poleceń.
Jeśli clean.requireForce
jest ustawione na "true" (domyślne) w konfiguracji, należy podać -f
w przeciwnym razie nic się nie stanie.
Zobacz też git-clean
dokumenty, aby uzyskać więcej informacji.
Opcje
-f
,--force
If the Git configuration variable clean.requireForce nie jest ustawione na false, git clean odmówi uruchomienia, chyba że poda
-f
,-n
lub-i
.
-x
Nie używaj standardowych reguł ignorowania odczytanych z .gitignore (per katalog) i
$GIT_DIR/info/exclude
, ale nadal używaj ignorowanych reguły podane z opcjami-e
. Pozwala to na usunięcie wszystkich nie śledzonych plików, w tym produkty budowlane. Może być stosowany (ewentualnie w połączeniu z git reset), aby utworzyć nieskazitelny katalog roboczy, aby przetestować czyste buduj.
-X
Usuń tylko pliki ignorowane przez Git. Może to być przydatne do rebuild wszystko od podstaw, ale zachowaj ręcznie utworzone pliki.
-n
,--dry-run
Nie usuwaj niczego, po prostu pokaż, co można zrobić.
-d
Usuń Nie śledzone katalogi oprócz Nie śledzonych plików. Jeśli katalog untracked jest zarządzany przez inne repozytorium Git, jest domyślnie nie jest usuwany. Użyj opcji
-f
dwa razy, jeśli naprawdę chcesz Usuń taki katalog.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-07 10:51:44
Użyj git clean -f -d
, aby upewnić się, że katalogi są również usunięte.
-
Nie usuwaj niczego, po prostu pokaż, co można zrobić.
git clean -n
Lub
git clean --dry-run
-
Usuń Nie śledzone katalogi oprócz Nie śledzonych plików. Jeśli katalog nie śledzony 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.git clean -fd
Możesz wtedy sprawdzić jeśli Twoje pliki naprawdę zniknęły z git status
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-29 19:20:43
Dziwi mnie, że nikt wcześniej o tym nie wspomniał:
git clean -i
To oznacza interactive , a otrzymasz szybki przegląd tego, co zostanie usunięte, oferując możliwość włączenia/wykluczenia dotkniętych plików. Ogólnie rzecz biorąc, nadal szybciej niż uruchomienie obowiązkowego --dry-run
przed prawdziwym czyszczeniem.
Będziesz musiał wrzucić -d
Jeśli chcesz również zadbać o puste foldery. Na końcu tworzy ładny alias:
git iclean
To powiedziawszy, dodatkowy trzymanie za rękę interaktywnych poleceń może być męczące dla doświadczonych użytkowników. W dzisiejszych czasach Używam już wspomnianej git clean -fd
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-25 07:40:49
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-04 19:33:53
Prosty sposób na usunięcie nie śledzonych Plików
Aby usunąć wszystkie Nie śledzone pliki, proste sposób polega na tym, aby dodać je wszystkie jako pierwsze i zresetować repo Jak poniżej
git add --all
git reset --hard HEAD
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-28 15:59:18
Jeśli katalog untracked jest własnym repozytorium git( np. submodule), musisz użyć -f
dwa razy:
git clean -d -f -f
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-25 12:24:01
Lubię git stash push -u
, ponieważ możesz cofnąć je wszystkie za pomocą git stash pop
.
EDIT: znalazłem też sposób na pokazanie nie śledzonego pliku w skrytce (np. git show stash@{0}^3
) https://stackoverflow.com/a/12681856/338986
EDIT2: git stash save
jest przestarzałe na rzecz push
. Dzięki @ script-wolf.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-25 00:03:55
To jest to, czego zawsze używam:
git clean -fdx
W przypadku bardzo dużego projektu możesz chcieć uruchomić go kilka razy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-09 20:47:41
Git-clean jest tym, czego szukasz. Jest on używany do usuwania nie śledzonych plików z drzewa roboczego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-29 05:36:21
Jeśli jest to konieczne do usunięcia nie śledzonych plików z określonego podkatalogu,
git clean -f {dir_path}
I połączony sposób usuwania nie śledzonych plików dir / i ignorowanych plików.
git clean -fxd {dir_path}
Po tym będziesz miał zmodyfikowane pliki tylko w git status
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-24 06:28:30
Usuń wszystkie dodatkowe foldery i pliki w tym repo + podmodule
To daje Ci taki sam stan jak świeży klon.
git clean -ffdx
Usuń wszystkie dodatkowe foldery i pliki w tym repo, ale nie jego podmoduły
git clean -fdx
Usuń dodatkowe foldery, ale nie Pliki (np. build or logs folder)
git clean -fd
Usuń dodatkowe foldery + ignorowane pliki (ale nie nowo dodane pliki)
Jeśli plik nie został zignorowany i nie został jeszcze sprawdzony, zostanie. Uwaga na capital X.
git clean -fdX
Nowy tryb interaktywny
git clean
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-18 00:00:25
git clean -fd
usuwa katalog
git clean -fX
usuwa ignorowane pliki
git clean -fx
usuwa ignorowane i nie-ignorowane pliki
Można używać wszystkich powyższych opcji w kombinacji jako
git clean -fdXx
Sprawdź instrukcję git, aby uzyskać więcej pomocy
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-28 07:56:26
OK, usuwanie niechcianych plików i folderów jest łatwe za pomocą git
w wierszu poleceń, po prostu zrób to tak:
git clean -fd
Sprawdź dokładnie przed zrobieniem tego, ponieważ usunie pliki i foldery bez tworzenia historii...
Również w tym przypadku, -f
oznacza siłę, a {[5] } oznacza katalog...
Więc, jeśli chcesz usunąć tylko pliki, możesz użyć tylko -f
:
git clean -f
Jeśli chcesz Usuń (katalogi) i pliki, możesz usuwać tylko nie śledzone katalogi i pliki takie jak:
git clean -fd
Możesz również użyć znacznika -x
do włączenia plików, które są ignorowane przez git. Byłoby to pomocne, jeśli chcesz usunąć wszystko.
I dodanie znacznika -i
sprawia, że git prosi Cię 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 Zobacz każdy raport po pomyślnym usunięciu.
Tworzę również poniższy obrazek, aby uczynić go bardziej niezapomnianym, szczególnie widziałem, jak wiele osób myli -f
do czyszczenia folderu czasami lub mieszać go jakoś!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-17 11:51:40
Lepszym sposobem jest użycie: Git clean
git clean -d -x -f
Usuwa pliki nie śledzone, w tym katalogi (-d)
i pliki ignorowane przez git (-x)
.
Zamień również argument -f
na -n
, Aby wykonać dry-run
lub -i
w trybie interaktywnym, a powie Ci, co zostanie usunięte.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-22 10:48:36
interaktywne podejście użytkownika:
git clean -i -fd
Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y
-i dla interaktywnych
- f jak siła
-D dla katalogu
- x dla ignorowanych plików (Dodaj w razie potrzeby)
Uwaga: dodaj - n lub --dry-run , aby sprawdzić, co zrobi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-07 04:35:57
Lifehack dla takiej sytuacji właśnie wymyśliłem i wypróbowałem (to działa idealnie):
git add .
git reset --hard HEAD
Uważaj! upewnij się, żezatwierdzisz wszystkie potrzebne zmiany (nawet w plikach, które nie są śledzone) przed wykonaniem tego .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-21 17:36:03
git clean -f -d -x $(git rev-parse --show-cdup)
stosuje clean do katalogu głównego, bez względu na to, gdzie go wywołasz w drzewie katalogów repozytorium. Używam go cały czas, ponieważ nie zmusza cię do opuszczenia folderu, w którym teraz pracujesz i pozwala wyczyścić & zatwierdzić bezpośrednio z miejsca, w którym jesteś.
Upewnij się, że flagi -f
, -d
, -x
dopasuj swoje potrzeby:
-d
Remove untracked directories in addition to untracked files. If an
untracked directory is managed by a different Git repository, it is
not removed by default. Use -f option twice if you really want to
remove such a directory.
-f, --force
If the Git configuration variable clean.requireForce is not set to
false, git clean will refuse to delete files or directories unless
given -f, -n or -i. Git will refuse to delete directories with .git
sub directory or file unless a second -f is given. This affects
also git submodules where the storage area of the removed submodule
under .git/modules/ is not removed until -f is given twice.
-x
Don't use the standard ignore rules read from .gitignore (per
directory) and $GIT_DIR/info/exclude, but do still use the ignore
rules given with -e options. This allows removing all untracked
files, including build products. This can be used (possibly in
conjunction with git reset) to create a pristine working directory
to test a clean build.
Dostępne są również inne flagi, sprawdź git clean --help
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-02 17:57:44
Dla mnie działa tylko po:
git clean -ffdx
We wszystkich innych przypadkach otrzymywałem wiadomość "pomijanie katalogu" dla niektórych podkatalogów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-16 15:29:20
Jeśli chcesz tylko usunąć Pliki wymienione jako nie śledzone przez 'git status'
git stash save -u
git stash drop "stash@{0}"
Wolę to niż 'Git clean', ponieważ' Git clean ' usunie pliki ignorowane przez git, więc twój następny build będzie musiał odbudować wszystko możesz też stracić ustawienia IDE.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-02 02:09:47
Aby wiedzieć, co zostanie usunięte przed faktycznym usunięciem:
git clean -d -n
Wyświetli coś w stylu:
Usunę próbkę.txt
Aby usunąć wszystko wymienione w wyjściu poprzedniego polecenia:
git clean -d -f
Wyświetli coś w stylu:
Usuwam próbkę.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-16 08:42:09
Aby usunąć Nie śledzone Pliki:
git add .
git reset --hard HEAD
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-20 16:05:48
Aby usunąć nie śledzone pliki, należy najpierw użyć polecenia, aby wyświetlić pliki, na które ma wpływ czyszczenie
git clean -fdn
Wyświetli listę plików, które zostaną usunięte. Teraz, aby faktycznie usunąć te pliki, użyj polecenia:
git clean -fd
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-25 09:09:27
Bądź ostrożny podczas uruchamiania polecenia 'git clean'.
Zawsze używaj -n
przed uruchomieniem rzeczywistego polecenia, ponieważ pokaże ci, jakie pliki zostaną usunięte.
git clean -n -d
git clean -f -d
Domyślnie, git clean
usuwa tylko pliki, które nie są ignorowane. Każdy plik, który pasuje do wzorca w Twoim .gitignore lub inne ignorowane pliki nie zostaną usunięte. Jeśli chcesz również usunąć te pliki, możesz dodać -x
do polecenia clean.
git clean -f -d -x
Istnieje również tryb interaktywny dostępne -i
za pomocą polecenia clean
git clean -x -i
Alternatywnie
Jeśli nie masz 100% pewności, że usuwanie niezarejestrowanych prac jest bezpieczne, możesz użyć stashingu
git stash --all
Wyczyści również Twój katalog, ale da Ci elastyczność pobierania plików w dowolnym momencie za pomocą stash z apply lub pop . Następnie w późniejszym momencie możesz wyczyścić swój Schowek używając:
git stash drop // or clean
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-23 21:26:40
Uggested polecenie do usuwania plików z dokumentów git jest Git clean
Git clean - usuwa nie śledzone pliki z drzewa roboczego
Sugerowana metoda: Interatywny Tryb za pomocą git clean -i
żebyśmy mieli nad tym kontrolę. Pokaż pozostałe dostępne opcje.
Dostępne Opcje:
git clean
-d -f -i -n -q -e -x -X (can use either)
Explanation:
1. -d
Usuń Nie śledzone katalogi oprócz Pliki bez śledzenia. Jeśli katalog nie śledzony 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
If the Git configuration variable clean.requireForce nie jest ustawione na false, git clean odmówi uruchomienia, chyba że poda-f,- n lub -i.
3. - i, --interactive
Pokaż, co zostanie zrobione i wyczyść pliki interaktywnie. Zobacz "Tryb interaktywny" po szczegóły.
4. -n, --dry-run
Nie usuwaj niczego, po prostu pokaż, co można zrobić.
5. -q, -- quiet
Bądź cicho, zgłaszaj tylko błędy, ale nie pliki, które zostały pomyślnie usunięte.
6. -e, --exclude=
Oprócz tych znalezionych w .gitignore (per directory) oraz $GIT_DIR / info / exclude, również uważają te wzorce za w zestaw obowiązujących reguł ignorowania.
7. -x
Nie używaj standardowych reguł ignorowania odczytanych z .gitignore (na katalog) i $GIT_DIR / info / exclude, ale nadal używaj ignoruj reguły podane z opcjami-E. Pozwala to na usunięcie wszystkich nie śledzonych plików, w tym produktów kompilacyjnych. Może być stosowany (ewentualnie w połączenie z git reset), aby utworzyć nieskazitelny katalog roboczy, aby przetestować czystą kompilację.
8. -X
Usuń tylko pliki ignorowane przez Git. Może to być przydatne do odbudowy wszystkiego od podstaw, ale zachowaj ręcznie utworzone pliki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-01 06:23:29
Zwykłe git clean
polecenie nie usuwa nie śledzonych plików za pomocą my git version 2.9.0.windows.1
.
$ git clean -fdx # doesn't remove untracked files
$ git clean -fdx * # Append star then it works!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-11 00:14:30
git clean -f to remove untracked files from working directory.
Omówiłem podstawy na moim blogu, git-intro-basic-commands
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-25 07:06:31
Możemy łatwo usunąć lokalne nie śledzone pliki z bieżącego drzewa roboczego Gita, używając poniższych komentarzy.
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
Przykład:
git reset --hard HEAD
Linki:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-04 06:30:46
Czyszczenie repozytorium git i wszystkich podmodułów rekurencyjnie
Następujące polecenie wyczyści obecne repozytorium git i wszystkie jego podmoduły rekurencyjnie:
(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-19 06:46:00
git clean -f
Usunie nie śledzone pliki z bieżącego Gita
git clean -fd
Jeśli chcesz usunąć katalogi i pliki, spowoduje to usunięcie tylko nie śledzonych katalogów i plików
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-18 06:04:51
Oh-my-zsh with zsh dostarcza te świetne aliasy poprzez wtyczkę git. Mogą być również używane w bash.
gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'
-
gclean
usuwa nie śledzone katalogi oprócz Nie śledzonych plików . -
gpristine
twarde Resetowanie zmian lokalnych, usuwanie nie śledzonych katalogów, Pliki bez śledzenia i nie używają standardowych reguł ignorowania odczytanych z .gitignore (na katalog) i $GIT_DIR / info / exclude, ale nadal używają reguł ignoruj podane z opcjami-e. Pozwala to na usunięcie wszystkich nie śledzonych plików, w tym produktów kompilacyjnych. To może być użyte (prawdopodobnie w połączeniu z git reset) do utworzenia nieskazitelnego katalogu roboczego, aby przetestować czystą kompilację .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-31 23:34:14