Kaip ištrinti vietinius (nekontroliuojamus) failus iš dabartinio „Git“ darbo medžio?

Kaip pašalinti nereikalingus vietinius failus iš dabartinio darbo medžio?

6113
14 сент. Skaityta tik 14 rugsėjis 2008-09-14 12:06 '08 12:06 val. 2008-09-14 12:06
@ 36 atsakymai
  • 1
  • 2

Pagal git švarius dokumentus

Iš darbo medžio pašalinkite nereikalingus failus


1 veiksmas - parodyti, kas bus pašalinta su parametru -n :

 git clean -n 

Švarus žingsnis - saugokitės: tai pašalins failus :

 git clean -f 
  • Norėdami pašalinti katalogus, paleiskite git clean -f -d arba git clean -fd
  • Norėdami pašalinti ignoruojamus failus, paleiskite git clean -f -X arba git clean -fX
  • Norėdami pašalinti ignoruotus ir nepaisytus failus, paleiskite git clean -f -X arba git clean -fX

Atkreipkite dėmesį į skirtumus tarp X paskutiniųjų komandų.

Jei clean.requireForce nustatyta kaip „true“ (numatytoji) jūsų konfigūracijoje, turite nurodyti -f , kitaip nieko neįvyks.

Daugiau informacijos rasite git-clean dokumentuose.

Funkcijos

-f

- stiprumas

Jei „Git clean.requireForce“ konfigūracijos kintamasis nėra nustatytas kaip klaidingas, „Git clean“ atsisakys pradėti, nebent bus nurodyta -f, -n arba -i.

-x

Nenaudokite standartinių ignoravimo taisyklių, skaitomų iš .gitignore (kiekvienam katalogui) ir $ GIT_DIR / info / izslēgti, tačiau vis tiek naudokite ignoravimo taisykles, nurodytas su -e parinktimis. Tai leidžia ištrinti visus neperdirbtus failus, įskaitant gaminių surinkimą. Tai galima naudoti (galbūt kartu su „Git“ iš naujo), kad sukurtumėte nepažeistą darbo katalogą, kad patikrintumėte, ar nėra švaraus statinio.

-X

Ištrinkite tik „Git“ ignoruotus failus. Tai gali būti naudinga atkuriant viską nuo nulio, bet išsaugant rankiniu būdu sukurtus failus.

-n

- sausas

Iš tiesų, nieko neištrinkite, tiesiog parodykite, kas bus padaryta.

-d

Be žaliavų failų, ištrinkite nereikalingus katalogus. Jei nepasirašytą katalogą valdo kitas „Git“ saugykla, jis pagal nutylėjimą neištrinamas. Jei norite ištrinti tokį katalogą, du kartus naudokite parinktį -f.

7973
15 сент. Andreas Ericsson atsakymas rugsėjo 15 d 2008-09-15 20:32 '08 at 8:32 pm 2008-09-15 20:32

Naudokite git clean -f -d kad įsitikintumėte, jog katalogai taip pat yra ištrinti.

border=0

Tada galite patikrinti, ar jūsų failai yra iš tikrųjų perėję iš git status .

866
26 мая '09 в 23:59 2009-05-26 23:59 atsakymą pateikė robert.berger gegužės 09 d. 23:59 2009-05-26 23:59

Esu nustebęs, kad niekas to nepaminėjo:

 git clean -i 

Tai reiškia interaktyvumą ir trumpą apžvalgą apie tai, kas bus pašalinta, suteikiant galimybę įtraukti / neįtraukti paveiktų failų. Apskritai, ji vis dar yra greitesnė nei privalomojo - --dry-run prieš tikrąjį valymą.

Jums reikės išmesti -d jei norite rūpintis tuščiais aplankais. Galiausiai jis daro gerą slapyvardį:

 git iclean 

Taigi papildomas rankinis interaktyvių komandų įgyvendinimas gali pavargti pažangiems vartotojams. Šiomis dienomis tiesiog naudoju jau minėtą git clean -fd

427
30 дек. Atsakymą pateikė SystematicFrank 30 Dec. 2013-12-30 23:12 '14 at 11:12 2013-12-30 23:12
388
14 сент. Atsakymą pateikė „ Fire Lancer “ 14 sep. 2008-09-14 12:09 '08, 12:09 2008-09-14 12:09

Jei nepažymėtas katalogas yra jūsų git saugykla (pvz., Submodulis), jums reikia naudoti -f du kartus:

git clean -d -f -f

213
25 янв. Michał Szajbe atsakymas dėl sausio 25 d 2013-01-25 15:24 '13, 15:24, 2013-01-25 15:24

Lengvas būdas pašalinti nepažymėtus failus

Jei norite ištrinti visus nepažymėtus failus, paprasčiausias būdas yra pirmiausia juos įtraukti ir iš naujo nustatyti saugyklą, kaip parodyta žemiau.

 git add --all git reset --hard HEAD 

156
03 июня '16 в 15:16 2016-06-03 15:16 Atsakymą pateikė Thanga birželio 03 d. 16:16 2016-06-03 15:16

Man patinka git stash push -u nes jūs galite juos atšaukti su git stash pop .

Redaguoti: taip pat rado būdą, kaip talpykloje parodyti nepavykusį failą (pvz., git show stash@{0}^3 ) ngn-wiki.ru.site/questions/507 / ...

EDIT2: „Git git stash save yra pasenęs, nes tai naudinga push . Ačiū @ scenarijų vilkas.

121
11 янв. Hiroshi atsakė į sausio 11 d 2014-01-11 03:41 '14 at 3:41 2014-01-11 03:41

Tai aš visada naudoju:

 git clean -fdx 

Labai didelį projektą galite paleisti kelis kartus.

98
25 нояб. atsakymą pateikė Oscar Fraxedas lapkričio 25 d. 2013-11-25 17:16 '13, 17:16, 2013-11-25 17:16

git-clean yra tai, ko ieškote. Jis naudojamas neperdirbtiems failams pašalinti iš darbo medžio.

83
14 сент. Atsakymas pateiktas Espo 14 Sep. 2008-09-14 12:08 '08, 12:08 2008-09-14 12:08

Jei norite pašalinti nepasirašytus failus iš konkretaus katalogo,

 git clean -f {dir_path} 

Ir bendras būdas pašalinti ne atkuriamus failus / failus ir ignoruojamus failus.

 git clean -fxd {dir_path} 

po to pakeisite tik git status failus.

73
24 сент. Atsakymas pateikiamas Vijay C 24 sep. 2013-09-24 09:28 '13, 9:28, 2013-09-24 09:28

git clean -fd ištrina katalogą

git clean -fX pašalina ignoruojamus failus

git clean -fX pašalina ignoruotus ir nepaisytus failus

Visus pirmiau nurodytus variantus galite naudoti kartu su

git clean -fdXx

Išsamesnės pagalbos ieškokite git vadove.

48
22 янв. Atsakymas duotas Pooja sausio 22 d 2015-01-22 09:33 '15 at 9:33 2015-01-22 09:33

Ištrinkite visus nereikalingus aplankus ir failus šiame repo + moduliuose

Tai atneša jums tą pačią būseną, kaip ir švieži klonas.

 git clean -ffdx 

Ištrinkite visus papildomus aplankus ir failus šiame repo, bet ne jo modulius.

 git clean -fdx 

Ištrinti tik papildomus aplankus, bet ne failus (pvz., Kūrimo aplanką)

 git clean -fd 

Ištrinti nereikalingus aplankus ir trūkstamus failus (bet ne naujus failus)

Jei failas nebuvo ignoruojamas ir dar nebuvo užregistruotas, jis lieka. Atkreipkite dėmesį į kapitalą X.

 git clean -fdX 

Naujas interaktyvus režimas

 git clean 
37
12 февр. Atsakymą pateikė Shital Shah , vasario 12 d. 2017-02-12 11:33 '17 at 11:33 2017-02-12 11:33

Gerai, pašalinus nereikalingus nepažeistus failus ir aplankus lengva, naudodami git komandinėje eilutėje, tiesiog atlikite tai:

 git clean -fd 

Patikrinkite prieš tai atlikdami, nes ji ištrins failus ir aplankus nepadarius istorijos ...

Be to, šiuo atveju -f reiškia jėgą, o -d reiškia katalogą ...

Taigi, jei norite ištrinti tik failus, galite naudoti tik -f :

 git clean -f 

Jei norite ištrinti (katalogus) ir failus, galite ištrinti tik nekontroliuojamus katalogus ir failus, pavyzdžiui:

 git clean -fd 

Taip pat galite naudoti „ -x vėliavą, kad įtrauktumėte failus, kuriuos ignoruoja „git“. Tai būtų naudinga, jei norite ištrinti viską.

Ir pridėjus -i vėliavą, git prašo leidimo ištrinti failus po vieną.

Jei nesate tikri ir norite pirmiausia patikrinti viską, pridėkite -n vėliavą.

Naudokite „ -q jei nenorite matyti jokios ataskaitos po sėkmingo ištrynimo.

Aš taip pat sukursiu žemiau esantį vaizdą, kad padarytum jį labiau įsimintiną, ypač aš mačiau, kiek žmonių supainioja -f su aplanko valymu ar kažkaip supainioti!


2019

20 июля '17 в 19:42 2017-07-20 19:42 Atsakymą Alireza pateikė liepos 17 d. 17 val. 19:42 2017-07-20 19:42

Geriausiai naudojamas: švarus

 git clean -d -x -f 

Tai pašalina nereikalingus failus, įskaitant katalogus (-d) ir failus, kuriuos ignoruoja git (-x) .

Taip pat pakeiskite -f argumentą su -n kad įvykdytumėte dry-run interaktyvųjį režimą arba -i , ir jis jums pasakys, kas bus pašalinta.

32
16 апр. Atsakymas pateikiamas Chhabilal 16 balandžio. 2015-04-16 09:49 '15 at 9:49 2015-04-16 09:49

Vartotojo interaktyvus požiūris:

 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 interaktyviems
-f jėga
-d katalogui
-x ignoruojamiems failams (prireikus pridėti)

Pastaba: pridėti -n arba - sausas, kad tik patikrintumėte, ką ji atliks.

20
02 марта '17 в 23:09 2017-03-02 23:09 atsakymas pateikiamas bit_cracker007 kovo 02 '17, 23:09 2017-03-02 23:09

Man, tik po darbo:

 git clean -ffdx 

Visais kitais atvejais gavau pranešimą „Praleisti katalogą“ kai kuriems katalogams.

15
16 авг. atsakymas pateikiamas rahul286 16 rug . 2016-08-16 18:29 '16 at 18:29 pm 2016-08-16 18:29

git clean -f -d -x $(git rev-parse --show-cdup) yra naudojamas tik šakniniam katalogui, nesvarbu, kur jį vadinate saugyklos katalogų medyje. Aš jį visą laiką naudoju, nes tai neužkerta kelio palikti aplanką, kuriame dirbate, ir leidžia išvalyti ir ištaisyti teisę iš vietos, kurioje esate.

Įsitikinkite, kad vėliavėlės -f , -d , -x atitinka jūsų poreikius:

 -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. 

Yra ir kitų vėliavų, tiesiog pasirinkite git clean --help .

15
02 дек. Atsakymą pateikė Nikita Leonov 02 Dec 2015-12-02 20:57 '15 - 20:57 2015-12-02 20:57

Jei tiesiog norite ištrinti failus, kurie nėra pažymėti „git status“

 git stash save -u git stash drop "stash@{0}" 

Norėčiau, kad šis „git clean“, nes „git clean“ pašalins failus, ignoruotus „git“, todėl jūsų kitas kūrinys turės atstatyti viską ir taip pat galite prarasti IDE nustatymus.

13
02 марта '16 в 5:09 2016-03-02 05:09 atsakymas duotas jazzdev 02 kovo 16 d. 5:09 2016-03-02 05:09

Tokios situacijos gyvybingumas, kurį tik išrado ir bandė (puikiai veikia):

 git add . git reset --hard HEAD 
Atsargiai Prieš atlikdami šį dokumentą, būtinai nukopijuokite visus būtinus pakeitimus (net ir netinkamus failus).
13
21 февр. atsakymas pateikiamas thybzi 21 vasario mėn. 2016-02-21 20:29 '16 at 8:29 pm 2016-02-21 20:29

Norėdami sužinoti, kas bus ištrinta prieš faktinį pašalinimą:

git clean -d -n

Jis bus rodomas kaip:

Pašalina sample.txt

Jei norite pašalinti viską, kas nurodyta ankstesnės komandos išvestyje:

git clean -d -f

Jis bus rodomas kaip:

Pašalinkite sample.txt

10
16 февр. Atsakymą pateikė Omar Mowafi vasario 16 d. 2016-02-16 11:42 '16 at 11:42 2016-02-16 11:42

Jei norite ištrinti nepanaudotus failus, pirmiausia turite naudoti komandą, kad galėtumėte peržiūrėti failus, kuriuos paveiks valymas.

 git clean -fdn 

Tai parodys failų, kuriuos norite ištrinti, sąrašą. Dabar, norėdami ištrinti šiuos failus, naudokite šią komandą:

 git clean -fd 
8
25 окт. Gaurav 25 spalio atsakymas . 2016-10-25 12:09 '16 at 12:09 pm 2016-10-25 12:09

Kažkas turėtų paminėti:

 git clean [<options>] 

Ar aš teisus

7
27 авг. joeytwiddle atsakymas, rugpjūčio 27 d. 2015-08-27 13:18 '15, 15:18 pm 2015-08-27 13:18

Būkite atsargūs vykdydami komandą „git clean“.

Visada naudokite -n prieš paleisdami tikrąją komandą, rodydami, kurie failai bus ištrinti.

 git clean -n -d git clean -f -d 

Pagal nutylėjimą „ git clean ištrins tik nepanaudotus nepanaudotus failus. Bet koks failas, atitinkantis jūsų .gitignore arba kitų ignoruojamų failų modelį, nebus ištrintas. Jei taip pat norite ištrinti šiuos failus, komandą -x galite pridėti prie švarios komandos.

 git clean -f -d -x 

Taip pat yra -i interaktyvus režimas su švaria komanda.

 git clean -x -i 

Arba

Jei nesate tikri, kad nebaigtas darbas bus ištrintas saugiai, vietoj to galite naudoti stashing.

 git stash --all 

Jis taip pat išvalys jūsų katalogą, bet suteiks jums lankstumo bet kuriuo metu išgauti failus naudodamasis atmintine su „ pop“ arba „ pop“ . Tada vėliau galite išvalyti talpyklą naudodami:

 git stash drop // or clean 
6
22 окт. Atsakyti DevWL Oct 22. 2017-10-22 00:44 '17 - 0:44 2017-10-22 00:44

git clean -f to remove untracked files from working directory.

Kai kuriuos pagrindus čia aptariau savo dienoraštyje, git-intro-basic-komandose

5
16 февр. atsakymas pateikiamas vasario 16 d . 2017-02-16 12:05 '17, 12:05 2017-02-16 12:05

Mes galime lengvai pašalinti vietinius nepažymėtus failus iš dabartinio „git“ darbo medžio, naudodami toliau pateiktus „git“ komentarus.

 git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>] 

Pavyzdys:

 git reset --hard HEAD 

Nuorodos:

  1. https://git-scm.com/docs/git-reset
  2. Kaip naudoti „git reset --hard HEAD“, kad grįžtumėte į ankstesnį įvykį?
  3. Atstatykite vietos saugyklos filialą taip, kad jis atrodytų kaip nuotolinė saugykla HEAD
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html
5

ued Command Ištrinkite neapdorotus failus iš git docs git clean

git clean - pašalinkite sugadintus failus iš darbo medžio

Siūlomas metodas: sąveikos režimas su git clean -i kad galėtume jį valdyti. peržiūrėkite likusias galimas parinktis.

Galimos parinktys:

 git clean -d -f -i -n -q -e -x -X (can use either) 

Paaiškinimas:

1. -d

Be žaliavų failų, ištrinkite nereikalingus katalogus. Jei nepasirašytą katalogą tvarko kitas git saugykla, jis pagal nutylėjimą neištrinamas. Jei norite ištrinti tokį katalogą, du kartus naudokite parinktį -f.

2. -f, - jėga

Jei „git clean.requireForce“ konfigūracijos kintamasis nėra nustatytas kaip klaidingas, „git clean“ atsisakys paleisti, nebent bus nurodyta -f, -n arba -i.

3. -i, --interactive

Parodykite, kas bus padaryta, ir išvalykite failus internete. Išsamesnės informacijos ieškokite „Interaktyvus režimas“.

4. -n, - dry-run

Iš tiesų, nieko neištrinkite, tiesiog parodykite, kas bus padaryta.

5. -q, --quiet

Būkite ramus, tiesiog praneškite apie klaidas, bet neištrinkite failų.

6. -e, --exclude =

Be tų, kurie rasti .gitignore (kiekvienam katalogui) ir $ GIT_DIR / info / izslēgti, taip pat apsvarstykite šiuos modelius galiojančių ignoravimo taisyklių rinkinyje.

7. -x

Nenaudokite standartinių ignoravimo taisyklių, skaitomų iš .gitignore (kiekvienam katalogui) ir $ GIT_DIR / info / izslēgti, tačiau vis tiek naudokite ignoravimo taisykles, nurodytas su -e parinktimis. Tai leidžia ištrinti visus neperdirbtus failus, įskaitant gaminių surinkimą. Tai galima naudoti (galbūt kartu su git reset), kad sukurtumėte nepaliestą darbo katalogą, kad patikrintumėte, ar nėra švaraus statinio.

8. -X

Ištrinkite tik „Git“ ignoruotus failus. Tai gali būti naudinga atkuriant viską nuo nulio, bet išsaugant rankiniu būdu sukurtus failus.

01 сент. Atsakymas, kurį pateikė Mohideen ibn Mohammed, rugsėjo 01 d 2017-09-01 09:23 '17 at 9:23 am 2017-09-01 09:23

Įprasta git clean komanda nepašalina nepanaudotų failų su git version 2.9.0.windows.1 .

 $ git clean -fdx # doesn't remove untracked files $ git clean -fdx * # Append star then it works! 
5
11 окт. atsakymas pateikiamas kujiy 11 okt. 2016-10-11 03:14 '16 at 3:14 2016-10-11 03:14

Išvalykite git repozitoriumą ir visus submodulius rekursiškai

Toliau pateikta komanda rekursyviai išvalo dabartinę „Git“ saugyklą ir visus jos modulius:

 (git clean -d -x -f  git submodule foreach --recursive git clean -d -x -f) 
3
25 сент. atsakymas pateikiamas Sergejui 25 sep. 2017-09-25 19:25 '17, 19:25 pm 2017-09-25 19:25

oh-my-zsh su zsh suteikia šiuos puikius slapyvardžius per „git“ papildinį. Jie taip pat gali būti naudojami bash.

gclean='git clean -fd'
gpristine='git reset --hard git clean -dfx'

  • gclean pašalintų gclean pašalina gclean katalogus.
  • gpristine sunkiai sumažina vietinius pakeitimus, pašalina nepažymėtus katalogus, nepažymėtus failus ir nenaudoja standartinių ignoravimo taisyklių, skaitomų iš .gitignore (kiekvienam katalogui) ir $ GIT_DIR / info / izslēgti, tačiau vis tiek naudoja ignoravimo taisykles, nustatytas su -e parinktimi. Tai leidžia ištrinti visus nepažymėtus failus, įskaitant kūrimo produktus. Tai galima naudoti (galbūt kartu su git reset), kad sukurtumėte pirminį darbo katalogą, skirtą švaraus statinio bandymui.
3
02 нояб. Atsakymas pateikiamas ZenLulz 02 lapkričio. 2017-11-02 11:24 '17 at 11:24 2017-11-02 11:24
 git clean -f 

pašalins nepažymėtus failus iš dabartinės git

 git clean -fd 

kai norite ištrinti katalogus ir failus, jis ištrins tik nepažymėtus katalogus ir failus.

1
18 мая '18 в 9:04 2018-05-18 09:04 atsakymą davė Sudhir Vishwakarma gegužės 18 d. 18 val. 9:04 2018-05-18 09:04
  • 1
  • 2

Kiti klausimai apie arba Užduoti klausimą