border=0

"81.19.188.229 - 81.19.188.229"

Hoe verwijder je lokale (niet-bijgehouden) bestanden uit de huidige Git-werkboom?

Hoe onnodige lokale bestanden uit de huidige werkboom verwijderen?

6113
14 сент. Alleen lezen ingesteld op 14 september 2008-09-14 12:06 '08 om 12:06 uur 2008-09-14 12:06
@ 36 antwoorden
  • 1
  • 2

Volgens de git schone documentatie

Verwijder onnodige bestanden uit de werkstructuur


Stap 1 - laat zien wat er zal worden verwijderd met de -n parameter:

 git clean -n 

Schone stap - Pas op: hiermee worden de bestanden verwijderd :

 git clean -f 
  • Om gidsen te verwijderen, voert u git clean -f -d of git clean -fd
  • Om genegeerde bestanden te verwijderen, voer git clean -f -X of git clean -fX
  • Om genegeerde en niet genegeerde bestanden te verwijderen, voert u git clean -f -X of git clean -fX

Let op het verschil in gebeurtenissen op X voor de laatste twee teams.

Als clean.requireForce ingesteld op "true" (de standaardinstelling) in uw configuratie, moet u -f opgeven, anders gebeurt er niets.

Bekijk de git-clean documentatie opnieuw voor meer informatie.

functies

-f

- kracht

Als de Git clean.requireForce-configuratievariabele niet is ingesteld op false, weigert Git clean om te starten tenzij -f, -n of -i is opgegeven.

-x

Gebruik niet de standaard negeerregels gelezen uit .gitignore (voor elke directory) en $ GIT_DIR / info / exclude, maar gebruik nog steeds de negeerregels die zijn opgegeven met de -e-opties. Hiermee kunt u alle onbewerkte bestanden verwijderen, inclusief de assemblage van producten. Dit kan worden gebruikt (mogelijk in combinatie met Git-reset) om een ​​onaangeroerde werkdirectory te maken om te controleren op een schone build.

-X

Verwijder alleen bestanden die zijn genegeerd door Git. Dit kan handig zijn om alles vanaf nul te herstellen, maar om handmatig gemaakte bestanden op te slaan.

-n

- droog

Verwijder in feite niets, laat gewoon zien wat er zal gebeuren.

-d

Verwijder onnodige mappen als aanvulling op de onbewerkte bestanden. Als een niet-ondertekende map wordt beheerd door een andere Git-repository, wordt deze niet standaard verwijderd. Gebruik de -f optie twee keer als u een dergelijke map echt wilt verwijderen.

7973
15 сент. Antwoord wordt gegeven door Andreas Ericsson 15 sep. 2008-09-15 20:32 '08 om 20:32 uur 2008-09-15 20:32

Gebruik git clean -f -d om ervoor te zorgen dat mappen ook worden verwijderd.

Vervolgens kun je controleren of je bestanden echt door de git status zijn gegaan.

866
26 мая '09 в 23:59 2009-05-26 23:59 het antwoord wordt gegeven door robert.berger op 26 mei '09 om 23:59 uur 2009-05-26 23:59 uur

Het verbaast me dat niemand dit eerder heeft genoemd:

 git clean -i 

Dit betekent interactiviteit en u krijgt een kort overzicht van wat wordt verwijderd en biedt u de optie om getroffen bestanden op te nemen / uit te sluiten. Over het algemeen is het nog steeds sneller dan het verplichte - --dry-run voor echte reiniging.

Je moet in -d gooien als je ook voor lege mappen wilt zorgen. Op het einde maakt hij een goed pseudoniem:

 git iclean 

De extra handmatige implementatie van interactieve opdrachten kan dus moe worden voor gevorderde gebruikers. Tegenwoordig gebruik ik gewoon de al genoemde git clean -fd

427
30 дек. Het antwoord wordt gegeven door SystematicFrank 30 dec. 2013-12-30 23:12 '14 om 11:12 2013-12-30 23:12
388
14 сент. Antwoord gegeven door Fire Lancer 14 september 2008-09-14 12:09 '08 om 12:09 2008-09-14 12:09

Als de untracked-map uw eigen git-repository is (bijvoorbeeld een submodule), moet u -f tweemaal gebruiken:

git clean -d -f -f

213
25 янв. Antwoord van Michał Szajbe op 25 januari 2013-01-25 15:24 '13 om 15:24 2013-01-25 15:24

Gemakkelijke manier om niet-gevonden bestanden te verwijderen

Om alle niet-trackbestanden te verwijderen, is het eenvoudig om ze eerst allemaal toe te voegen en de repository opnieuw in te stellen , zoals hieronder wordt getoond.

 git add --all git reset --hard HEAD 

156
03 июня '16 в 15:16 2016-06-03 15:16 Antwoord wordt gegeven door Thanga op 03 juni '16 om 15:16 2016-06-03 15:16

Ik hou van git stash push -u omdat je ze allemaal kunt annuleren met git stash pop .

EDIT: Ik heb ook een manier gevonden om een ​​niet-gevonden bestand in de cache te tonen (bijvoorbeeld git show stash@{0}^3 ) xbad.info.site/questions/507 / ...

EDIT2: git stash save verouderd ten gunste van push . Bedankt @ script wolf.

121
11 янв. Hiroshi antwoordde op 11 januari 2014-01-11 03:41 '14 om 3:41 2014-01-11 03:41

Dit is wat ik altijd gebruik:

 git clean -fdx 

Voor een zeer groot project kunt u het meerdere keren uitvoeren.

98
25 нояб. het antwoord wordt gegeven door Oscar Fraxedas op 25 nov. 2013-11-25 17:16 '13 om 17:16 2013-11-25 17:16

git-clean is waar je naar op zoek bent. Het wordt gebruikt om onverwerkte bestanden uit de werkstructuur te verwijderen.

83
14 сент. antwoord gegeven Espo 14 sept. 2008-09-14 12:08 '08 om 12:08 uur 2008-09-14 12:08

Als u niet-ondertekende bestanden uit een specifieke submap wilt verwijderen,

 git clean -f {dir_path} 

En een gecombineerde manier om niet-afspeelbare bestanden / bestanden en genegeerde bestanden te verwijderen.

 git clean -fxd {dir_path} 

daarna pas je bestanden in git status .

73
24 сент. Het antwoord is gegeven Vijay C 24 sep. 2013-09-24 09:28 '13 om 9:28 2013-09-24 09:28

git clean -fd verwijdert de map

git clean -fX verwijdert genegeerde bestanden

git clean -fX verwijdert genegeerde en niet genegeerde bestanden

Je kunt alle bovenstaande opties gebruiken in combinatie als

git clean -fdXx

Bekijk de git-handleiding voor meer hulp.

48
22 янв. Het antwoord is Pooja 22 januari gegeven 2015-01-22 09:33 '15 om 9:33 2015-01-22 09:33

Verwijder alle onnodige mappen en bestanden in deze repo- en submodules

Dit brengt je in dezelfde staat als een nieuwe kloon.

 git clean -ffdx 

Verwijder alle extra mappen en bestanden in deze repository, maar niet de submodules.

 git clean -fdx 

Alleen extra mappen verwijderen, maar geen bestanden (bijvoorbeeld de build-map)

 git clean -fd 

Verwijder onnodige mappen + ontbrekende bestanden (maar geen nieuwe bestanden)

Als het bestand niet is genegeerd en nog niet is geregistreerd, blijft het bestand staan. Besteed aandacht aan de hoofdstad X.

 git clean -fdX 

Nieuwe interactieve modus

 git clean 
37
12 февр. het antwoord wordt gegeven door Shital Shah 12 februari 2017-02-12 11:33 17 om 11:33 2017-02-12 11:33

OK, het verwijderen van onnodige niet-gevonden bestanden en mappen is eenvoudig, gebruik git op de opdrachtregel, doe het gewoon zo:

 git clean -fd 

Controleer dit voordat u dit doet, want het verwijdert bestanden en mappen zonder geschiedenis te maken ...

Ook in dit geval staat -f voor kracht, en -d staat voor directory ...

Dus als u alleen bestanden wilt verwijderen, kunt u alleen -f :

 git clean -f 

Als u (mappen) en bestanden wilt verwijderen, kunt u alleen niet-bewaakte mappen en bestanden verwijderen, bijvoorbeeld:

 git clean -fd 

U kunt ook de vlag -x gebruiken om bestanden op te nemen die genegeerd worden door git. Dit zou handig zijn als u alles wilt verwijderen.

En het toevoegen van de -i vlag zorgt ervoor dat git toestemming vraagt ​​om bestanden één voor één te verwijderen wanneer ze zijn.

Als u niet zeker bent en eerst alles wilt controleren, voegt u de markering -n .

Gebruik -q als u geen rapport wilt zien na succesvolle verwijdering.

Ik maak ook een afbeelding hieronder om het nog gedenkwaardiger te maken, vooral ik heb gezien hoeveel mensen verwarren -f met het opruimen van een map of op één of andere manier het in de war brengen!


2019

Best gebruikt: git clean

 git clean -d -x -f 

Dit verwijdert onnodige bestanden, inclusief mappen (-d) en bestanden die worden genegeerd door git (-x) .

Vervang ook het argument -f met -n om de interactieve modus voor dry-run of -i , en het zal u vertellen wat er zal worden verwijderd.

32
16 апр. Het antwoord is gegeven door Chhabilal 16 apr. 2015-04-16 09:49 '15 om 9:49 2015-04-16 09:49

Gebruikers interactieve benadering:

 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 voor interactief
-f voor kracht
-d voor directory
-x voor genegeerde bestanden (toevoegen indien nodig)

Opmerking: voeg -n of - dry toe om te controleren wat het precies doet.

20
02 марта '17 в 23:09 2017-03-02 23:09 het antwoord wordt gegeven bit_cracker007 02 maart '17 om 23:09 2017-03-02 23:09

Voor mij alleen na het werk:

 git clean -ffdx 

In alle andere gevallen ontving ik het bericht "Skipping Directory" voor sommige subdirectories.

15
16 авг. het antwoord is gegeven rahul286 16 aug. 2016-08-16 18:29 '16 om 18:29 uur 2016-08-16 18:29 uur

git clean -f -d -x $(git rev-parse --show-cdup) wordt puur voor de root-directory gebruikt, ongeacht waar je het in de directory-structuur van de repository noemt. Ik gebruik het altijd, omdat het je niet dwingt om de map waarin je momenteel werkt te verlaten, en het je mogelijk maakt om het recht van de plaats waar je bent op te ruimen en te herstellen.

Zorg ervoor dat de vlaggen -f , -d , -x overeenkomen met uw behoeften:

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

Er zijn andere vlaggen, kies gewoon git clean --help .

15
02 дек. Antwoord gegeven door Nikita Leonov 02 dec 2015-12-02 20:57 '15 om 20:57 2015-12-02 20:57

Als u alleen de vermelde bestanden wilt verwijderen als niet aangevinkt door 'git status'

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

Ik geef de voorkeur aan dit "git clean" omdat "git clean" de door git genegeerde bestanden zal verwijderen, dus je volgende build zal alles opnieuw moeten opbouwen en je kunt ook je IDE-instellingen verliezen.

13
02 марта '16 в 5:09 2016-03-02 05:09 het antwoord is jazzdev 02 maart '16 om 5:09 2016-03-02 05:09 gegeven

Levensvatbaarheid voor een dergelijke situatie die ik net heb uitgevonden en geprobeerd (wat geweldig werkt):

 git add . git reset --hard HEAD 
Let op! Zorg ervoor dat u de nodige wijzigingen kopieert (zelfs naar onoprechte bestanden) voordat u dit doet .
13
21 февр. het antwoord wordt gegeven aan thybzi 21 feb. 2016-02-21 20:29 '16 om 20:29 uur 2016-02-21 20:29

Om erachter te komen wat er zal worden verwijderd vóór de daadwerkelijke verwijdering:

git clean -d -n

Het zal iets als uitvoeren:

Verwijdert sample.txt

Om alle vermeldingen in de uitvoer van de vorige opdracht te verwijderen:

git clean -d -f

Het zal iets als uitvoeren:

Sample.txt verwijderen

10
16 февр. Het antwoord wordt gegeven door Omar Mowafi 16 februari. 2016-02-16 11:42 16 om 11:42 2016-02-16 11:42

Om ongebruikte bestanden te verwijderen, moet u eerst de opdracht gebruiken om de bestanden te bekijken die door de opruiming zullen worden beïnvloed.

 git clean -fdn 

Hiermee wordt de lijst met bestanden weergegeven die moeten worden verwijderd. Om deze bestanden daadwerkelijk te verwijderen, gebruikt u de volgende opdracht:

 git clean -fd 
8
25 окт. antwoord gegeven door Gaurav 25 oktober. 2016-10-25 12:09 '16 om 12:09 uur 2016-10-25 12:09 uur

Iemand moet echt vermelden:

 git clean [<options>] 

Heb ik gelijk?

7
27 авг. antwoord gegeven door joeytwiddle 27 aug. 2015-08-27 13:18 '15 om 13:18 uur 2015-08-27 13:18

Wees voorzichtig met het `git clean` commando.

Gebruik altijd -n voordat u het eigenlijke commando uitvoert, en laat zien welke bestanden zullen worden verwijderd.

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

Standaard verwijdert git clean alleen ongebruikte bestanden die niet genegeerd worden. Elk bestand dat overeenkomt met het patroon in uw .gitignore of andere negeerbestanden zal niet worden verwijderd. Als u deze bestanden ook wilt verwijderen, kunt u de opdracht -x aan een schone opdracht toevoegen.

 git clean -f -d -x 

Er is ook een -i interactieve modus met een schone opdracht.

 git clean -x -i 

Als alternatief,

Als u niet 100% zeker bent dat het verwijderen van uw onvoltooide werk veilig is, kunt u in plaats daarvan stashing gebruiken.

 git stash --all 

Het zal ook je directory wissen, maar je de flexibiliteit geven om bestanden op elk moment uit te pakken met behulp van stash met apply of pop . Op een later tijdstip kunt u uw cache leegmaken met behulp van:

 git stash drop // or clean 
6
22 окт. Het antwoord wordt gegeven DevWL 22 oct. 2017-10-22 00:44 '17 om 0:44 2017-10-22 00:44

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

Ik heb hier enkele basisbegrippen behandeld op mijn blog, git-intro-basic-commands

5
16 февр. het antwoord is ysk 16 feb gegeven . 2017-02-16 12:05 17 om 12:05 2017-02-16 12:05

We kunnen lokale niet-gevonden bestanden eenvoudig verwijderen uit de huidige werkende git-structuur met behulp van de onderstaande git-opmerkingen.

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

bijvoorbeeld:

 git reset --hard HEAD 

referenties:

  1. https://git-scm.com/docs/git-reset
  2. Hoe gebruik ik 'git reset --hard HOOFD' om terug te keren naar de vorige commit?
  3. Stel de lokale repositorytak opnieuw in zodat deze eruit ziet als de head repository HEAD
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html
5
04 дек. Het antwoord wordt gegeven door E> 04 dec. 2017-12-04 09:30 17 om 9:30 2017-12-04 09:30

ued Commando Verwijder ruwe bestanden uit git docs git clean

git clean - verwijder kapotte bestanden uit de werkende boom

Voorgestelde methode: interactie-modus met git clean -i zodat we het kunnen besturen. bekijk de resterende beschikbare opties.

Beschikbare opties:

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

uitleg:

1. -d

Verwijder onnodige mappen als aanvulling op de onbewerkte bestanden. Als een niet-ondertekende map wordt beheerd door een andere git-repository, wordt deze niet standaard verwijderd. Gebruik de -f optie twee keer als u een dergelijke map echt wilt verwijderen.

2. -f, --force

Als de configuratievariabele git clean.requireForce niet op false is ingesteld, weigert git clean om te starten tenzij -f, -n of -i is opgegeven.

3. -i, - interactief

Laat zien wat er zal gebeuren en wis de bestanden online. Zie "Interactieve modus" voor meer informatie.

4. -n, --dry-run

Verwijder in feite niets, laat gewoon zien wat er zal gebeuren.

5. -q, --quiet

Wees kalm, rapporteer fouten, maar verwijder geen bestanden.

6. -e, --exclude =

Behalve die gevonden in .gitignore (voor elke directory) en $ GIT_DIR / info / exclude, overweeg deze patronen ook in de reeks geldige negeerregels.

7. -x

Gebruik niet de standaard negeerregels gelezen uit .gitignore (voor elke directory) en $ GIT_DIR / info / exclude, maar gebruik nog steeds de negeerregels die zijn gespecificeerd met de -e parameters. Hiermee kunt u alle onbewerkte bestanden verwijderen, inclusief de assemblage van producten. Dit kan worden gebruikt (mogelijk in combinatie met git reset) om een ​​onaangeroerde werkdirectory te maken om te controleren op een schone build.

8. -X

Verwijder alleen bestanden die zijn genegeerd door Git. Dit kan handig zijn om alles vanaf nul te herstellen, maar om handmatig gemaakte bestanden op te slaan.

01 сент. Antwoord gegeven door Mohideen ibn Mohammed op sep 01 2017-09-01 09:23 '17 om 21:23 uur 2017-09-01 09:23

De gebruikelijke opdracht git clean verwijdert geen ongebruikte bestanden met 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 окт. antwoord gegeven kujiy 11 oct. 2016-10-11 03:14 '16 om 3:14 2016-10-11 03:14

Wis de git-repository en alle submodules recursief

Het volgende commando verwijdert recursief de huidige git repository en al zijn submodules:

 (git clean -d -x -f  git submodule foreach --recursive git clean -d -x -f) 
3
25 сент. het antwoord is Sergey 25 september gegeven. 2017-09-25 19:25 17 om 19:25 uur 2017-09-25 19:25 uur

oh-my-zsh met zsh biedt deze uitstekende aliassen via de git plug-in. Ze kunnen ook in bash worden gebruikt.

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

  • gclean verwijdert niet-traceerbare mappen als aanvulling op niet-gevonden bestanden.
  • gpristine zet lokale wijzigingen hard, verwijdert niet-volgde mappen, niet-gevonden bestanden en maakt geen gebruik van standaard negeerregels gelezen uit .gitignore (voor elke map) en $ GIT_DIR / info / exclude, maar gebruikt nog steeds negeerregels die zijn ingesteld met de optie -e. Hiermee kunt u alle niet-opgeslagen bestanden verwijderen, inclusief build-producten. Dit kan worden gebruikt (mogelijk in combinatie met git reset) om een ​​primaire werkdirectory te maken voor het testen van een schone build.
3
02 нояб. Het antwoord is gegeven ZenLulz 02 nov. 2017-11-02 11:24 17 om 11:24 2017-11-02 11:24
 git clean -f 

zal niet-gevonden bestanden van de huidige git verwijderen

 git clean -fd 

wanneer u mappen en bestanden wilt verwijderen, worden alleen niet-geregistreerde mappen en bestanden verwijderd.

1
18 мая '18 в 9:04 2018-05-18 09:04 het antwoord wordt gegeven door sudhir Vishwakarma op 18 mei 18 om 9:04 2018-05-18 09:04
  • 1
  • 2

Zie andere vragen over of Stel een vraag