Hoe de lokale (niet-gekruceerde) bestanden uit de huidige git-werkboom te verwijderen

Hoe verwijdert u onbepaalde lokale bestanden uit uw huidige werkboom?


Antwoord 1, Autoriteit 100%

git-clean – Verwijder ongekruide bestanden uit de werkboom

Synopsis

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…​

Beschrijving

Reinigt de werkboom door het recursief te verwijderen bestanden die niet onder Version Control zijn, vanaf de huidige directory .

Normaal gesproken worden alleen bestanden onbekend voor Git verwijderd, maar als de optie -xis opgegeven, worden genegeerde bestanden ook verwijderd. Dit kan bijvoorbeeld nuttig zijn om alle bouwproducten te verwijderen.

Als een optioneel <path>...ARGUMENTEN worden gegeven, worden alleen die paden beïnvloed.


Stap 1 is om te laten zien wat wordt verwijderd door de optie -nte gebruiken:

# Print out the list of files and directories which will be removed (dry run)
git clean -n -d

Clean Step – Pas op: dit zal bestanden verwijderen :

# Delete the files from the repository
git clean -f
  • Om mappen te verwijderen, voert u git clean -f -dof git clean -fd
  • Om genegeerde bestanden te verwijderen, voert u git clean -f -Xof git clean -fX
  • Om genegeerde en niet-genegeerde bestanden te verwijderen, voert u git clean -f -Xof git clean -fX

Opmerking Het verschil in de behuizing van de Xvoor de twee laatste opdrachten.

Als clean.requireForceis ingesteld op “true” (standaard) in uw configuratie, wat men nodig heeft om op te geven -fanders zal er niets daadwerkelijk gebeuren.

Opnieuw zien git-cleandocumentatie voor meer informatie.


Opties

-f, --force

Als de Git configuratievariabele clean.requireForce is niet ingesteld
false zal git clean weigeren uitgevoerd, tenzij bepaalde -f-nof -i.

-x

Gebruik niet de standaard te negeren gelezen van .gitignore (per regels
directory) en $GIT_DIR/info/exclude, maar nog steeds gebruik maken van de te negeren
Regels gegeven met -eopties. Dit maakt het verwijderen van alle ongevolgde bestanden,
inclusief build producten. Dit kan worden gebruikt (eventueel samen
met git reset) om een ​​ongerepte werkmap om een ​​schone testen creëren
build.

X

Verwijder alleen bestanden genegeerd door Git. Dit kan nuttig zijn om te herbouwen
alles vanaf nul, maar houd handmatig aangemaakte bestanden.

-n, --dry-run

Do eigenlijk niets te verwijderen, gewoon laten zien wat er zou gebeuren.

-d

Verwijder niet-gesraceerde directories naast niet-gesraceerde bestanden. Als een
untracked directory wordt beheerd door een ander Git repository, is het
standaard niet verwijderd. Gebruik -foptie twee keer na als je echt wilt
Verwijder een dergelijke map.


Antwoord 2, gezag 12%

Gebruik git clean -f -dom ervoor te zorgen dat de mappen worden ook verwijderd.

  1. Do eigenlijk niets te verwijderen, gewoon laten zien wat er zou gebeuren.

    git clean -n
    

    en

    git clean --dry-run
    
  2. Verwijder niet-bijgehouden mappen naast niet-bijgehouden bestanden. Als een niet-getrackte map wordt beheerd door een andere Git-repository, wordt deze niet standaard verwijderd. Gebruik de optie -ftwee keer als je zo’n map echt wilt verwijderen.

    git clean -fd
    

Je kunt dan controleren of je bestanden echt weg zijn met git status.


Antwoord 3, autoriteit 6%

Het verbaast me dat niemand dit eerder heeft gezegd:

git clean -i

Dat staat voor interactiveen u krijgt een snel overzicht van wat er gaat worden verwijderd en biedt u de mogelijkheid om de betreffende bestanden op te nemen/uit te sluiten. Over het algemeen nog steeds sneller dan het uitvoeren van de verplichte --dry-runvóór de echte schoonmaak.

Je moet een -derin gooien als je ook voor lege mappen wilt zorgen. Uiteindelijk levert het een mooie alias op:

git iclean

Dat gezegd hebbende, kan het extra vasthouden van interactieve commando’s vermoeiend zijn voor ervaren gebruikers. Tegenwoordig gebruik ik gewoon de reeds genoemde git clean -fd


Antwoord 4, autoriteit 4%

git-clean– Verwijder niet-getrackte bestanden uit de werkstructuur


Antwoord 5, autoriteit 3%

Eenvoudige manier om niet-getrackte bestanden te verwijderen

Om alle niet-getrackte bestanden te verwijderen, De eenvoudige
manier is om allemaal eerst toe te voegenen de repo opnieuw in te stellenzoals hieronder

git add --all
git reset --hard HEAD


Antwoord 6, autoriteit 3%

Als de untracked directory een eigen git-repository is (bijv. submodule), moet je -ftwee keer gebruiken:

git clean -d -f -f


Antwoord 7, autoriteit 2%

Ik hou van git stash push -uomdat je ze allemaal ongedaan kunt maken met git stash pop.

EDIT: ik heb ook een manier gevonden om niet-getrackte bestanden in een stash te tonen (bijv. git show stash@{0}^3) https://stackoverflow.com/a/12681856/338986

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


Antwoord 8

Dit is wat ik altijd gebruik:

git clean -fdX

Voor een heel groot project wil je het misschien een paar keer uitvoeren.


Antwoord 9

git-cleanis wat je zijn op zoek. Het wordt gebruikt om niet-getrackte bestanden uit de werkboom te verwijderen.


Antwoord 10

Indien nodig om niet-getrackte bestanden uit een bepaalde submap te verwijderen,

git clean -f {dir_path}

En gecombineerde manier om niet-getrackte dir/bestanden en genegeerde bestanden te verwijderen.

git clean -fxd {dir_path}

hierna heb je alleen gewijzigde bestanden in git status.


Antwoord 11

Verwijder alle extra mappen en bestanden in deze repo + submodules

Hierdoor kom je in dezelfde staat als een verse kloon.

git clean -ffdx

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

git clean -fdX

Extra mappen verwijderen, maar geen bestanden (bijv. build- of logsmap)

git clean -fd

Extra mappen verwijderen + genegeerde bestanden (maar niet nieuw toegevoegde bestanden)

Als het bestand niet is genegeerd en nog niet is ingecheckt, blijft het staan. Let op de hoofdletter X.

git clean -fdX

nieuwe interactieve modus

git clean

Antwoord 12

git clean -fdVerwijdert de map

git clean -fXVerwijdert genegeerde bestanden

git clean -fXVerwijdert genegeerde en niet-genegeerde bestanden

kan alle bovenstaande opties in combinatie worden gebruikt als

git clean -fdXx

Controleer GIT-handleiding voor meer hulp


Antwoord 13

OK, verwijderen Ongewenste ongewenste bestanden en mappen zijn eenvoudig met gitin opdrachtregel, doe het gewoon als dit:

git clean -fd

Dubbele controle voordat u het doet, want het zal de bestanden en mappen verwijderen zonder enige geschiedenis te maken …

Ook in dit geval, -fstaat voor geweld en -dstaat voor directory …

Dus, als u alleen bestanden wilt verwijderen, kunt u -falleen gebruiken:

git clean -f

Als u Verwijder wilt (Mappen) en bestanden, kunt u alleen niet-gesraceerde mappen en bestanden zoals deze verwijderen:

git clean -fd

Ook kunt u -xVlag gebruiken voor het opnemen van de bestanden die worden genegeerd door Git. Dit zou nuttig zijn als u alles wilt verwijderen.

en het toevoegen van -ivlag, maakt Git je om toestemming voor het verwijderen van bestanden één voor één onderweg.

Als u niet zeker bent en de dingen eerst wilt controleren, voeg dan -nvlag toe.

Gebruik -qAls u geen rapport na succesvolle verwijdering wilt zien.

Ik maak ook de afbeelding hieronder om het memorabeler te maken, vooral heb ik veel mensen gezien verwarren -fvoor het reinigen van map soms of mix het op een of andere manier!


Antwoord 14

Een betere manier is om: git clean te gebruiken

git clean -d -x -f

Hiermee worden niet-getrackte bestanden verwijderd, inclusief mappen (-d)en bestanden die worden genegeerd door git (-x).

Vervang ook het argument -fdoor -nom een dry-runof -iuit te voeren voor interactieve modus en het zal u vertellen wat er zal worden verwijderd.


Antwoord 15

Gebruikersinteractieve 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 (voeg toe indien nodig)

Opmerking:Voeg -nof –dry-runtoe om te controleren wat het zal doen.


Antwoord 16

Een lifehack voor zo’n situatie die ik zojuist heb uitgevonden en geprobeerd (die perfect werkt):

git add .
git reset --hard HEAD

Pas op!Zorg ervoor dat u de nodige wijzigingen doorgeeft(zelfs in niet-niet-getrackte bestanden) voordat u dit uitvoert.


Antwoord 17

Voor mij werkte alleen het volgende:

git clean -ffdx

In alle andere gevallen kreeg ik het bericht “Skipping Directory”voor sommige subdirectories.


Antwoord 18

git clean -f -d -x $(git rev-parse --show-cdup)Vraagt ​​schoon in de hoofddirectory, ongeacht waar u het binnen een repository-directory-boom noemt. Ik gebruik het de hele tijd omdat het je niet dwingt om de map te verlaten waar je nu werkt en toestaat om schoon te maken & amp; Gegaan vanaf de plaats waar u bent.

Zorg ervoor dat vlaggen -f, -d, -xPACOME aan 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, ook beschikbaar, controleer gewoon git clean --help.


Antwoord 19

Als u de bestanden als niet opgenomen door ‘gitstatus’ wilt verwijderen

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

Ik geef de voorkeur aan dit om ‘schoon’ te ‘git’ omdat ‘Git Clean’ bestanden zal verwijderen
genegeerd door git, dus je volgende build moet alles opnieuw opbouwen
en je kunt ook je IDE-instellingen kwijtraken.


Antwoord 20

Ontraceerde bestanden verwijderen:

git add .
git reset --hard HEAD

Antwoord 21

Om te weten wat er wordt verwijderd voordat het daadwerkelijk wordt verwijderd:

git clean -d -n

Het zal iets opleveren als:

Zou sample.txt verwijderen

Om alles in de uitvoer van de vorige opdracht te verwijderen:

git clean -d -f

Het zal iets opleveren als:

Sample.txt verwijderen


Antwoord 22

Wees voorzichtig bij het uitvoeren van het `git clean` commando.

Gebruik altijd-nvoordat u het daadwerkelijke commando uitvoert, omdat het u laat zien welke bestanden verwijderd zouden worden.

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

Standaard verwijdert git cleanalleen niet-getrackte bestanden die niet worden genegeerd. Elk bestand dat overeenkomt met een patroon in uw .gitignore of andere negeerbestanden zal niet worden verwijderd. Als je die bestanden ook wilt verwijderen, kun je een -xtoevoegen aan het clean-commando.

git clean -f -d -x

Er is ook een interactieve modus beschikbaar -imet de opdracht clean

git clean -x -i

Alternatief

Als je er niet 100% zeker van bent dat het verwijderen van je niet-toegewezen werk veilig is, kun je in plaats daarvan stashing gebruiken

git stash --all

Het zal ook je directory wissen, maar het geeft je de flexibiliteit om de bestanden op elk moment op te halen met behulp van stashmet applyof pop. Als je het goed vindt om je opgeslagen bestanden te verwijderen, kun je het volgende uitvoeren:

git stash drop // or clean

Om volledige instructie te zien over het werken met Stash Zie deze Hoe een stash noemen en ophalen op naam in Git?


Antwoord 23

Om de niet-uitgestrekte bestanden te verwijderen, moet u de opdracht voor het eerst gebruiken om de bestanden te bekijken die worden beïnvloed door reiniging

git clean -fdn

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

git clean -fd

Antwoord 24

Uggested Command voor Ontracked-bestanden verwijderen van Git Docs is Git Clean

Git Clean – Verwijder niet-gesraceerde bestanden uit de werkboom

Aanbevolen methode: Interatieve modus met behulp van git clean -i
Dus we kunnen er controle over hebben. Laat de resterende beschikbare opties zien.

Beschikbare opties:

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

Uitleg:

1. -D

Verwijder niet-gesraceerde directories naast niet-gesraceerde bestanden. Als een niet-uitgestrekte map wordt beheerd door een andere git-repository,
het wordt standaard niet verwijderd. Gebruik -F-optie twee keer als u zo’n map echt wilt verwijderen.

2. -f, – bevredigen

Als de GIT-configuratie-variabele clean.requireforce niet is ingesteld op FALSE, zal Git Clean weigeren te rennen tenzij gegeven -F, -N of
-I.

3. -I, –interactive

Toon wat er interactief zou worden gedaan en schone bestanden. Zie “Interactieve modus” voor details.

4. -n, – draaien-run

Verwijder niet echt iets, laat gewoon zien wat er zou gebeuren.

5. -Q, –Ciet

Wees stil, rapporteer alleen fouten, maar niet de bestanden die succesvol zijn verwijderd.

6. -e , –exclude=

Naast de patronen die gevonden worden in .gitignore (per directory) en $GIT_DIR/info/exclude, beschouw deze patronen ook als
set van de negeerregels die van kracht zijn.

7. -x

Gebruik niet de standaard negeerregels die worden gelezen uit .gitignore (per directory) en $GIT_DIR/info/exclude, maar gebruik nog steeds de negeerregels
regels gegeven met -e opties. Hierdoor kunnen alle niet-getrackte bestanden worden verwijderd, inclusief buildproducten. Dit kan worden gebruikt (eventueel in
combinatie met git reset) om een ongerepte werkmap te maken om een schone build te testen.

8. -X

Verwijder alleen bestanden die door Git zijn genegeerd. Dit kan handig zijn om alles vanaf het begin opnieuw op te bouwen, maar houd handmatig gemaakte bestanden.


Antwoord 25

Normaal git cleancommando verwijdert geen niet-getrackte bestanden met mijn git version 2.9.0.windows.1.

$ git clean -fdx     # doesn't remove untracked files
$ git clean -fdx *   # Append star then it works!

Antwoord 26

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

Ik heb hier een aantal basisprincipes behandeld in mijn blog, git-intro-basic-commands


Antwoord 27

We kunnen eenvoudig lokale niet-getrackte bestanden uit de huidige git-werkboom verwijderen door onderstaande git-opmerkingen te gebruiken.

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

Voorbeeld:

git reset --hard HEAD

Links:

  1. https://git-scm.com/docs/git-reset
  2. Hoe gebruik ik ‘git reset –hard HEAD’ om terug te keren naar een eerdere commit?
  3. Reset de lokale repository-vertakking naar gewoon zoals externe repository HEAD
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html

Antwoord 28

Ruim de git-repository en alle submodules recursief op

Het volgende commando zal opschonen
de huidige git-repository en al zijn submodules recursief:

(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)

Antwoord 29

git clean -f

verwijdert de niet-getrackte bestanden van de huidige git

git clean -fd

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


Antwoord 30

git add --all, git stashen git stash drop, probeer deze drie commando’s in deze volgorde om alle niet-getrackte bestanden te verwijderen . Door al die niet-bijgehouden bestanden aan git toe te voegen en ze te stashen, worden al die niet-bijgehouden bestanden naar de stashlijst verplaatst en valt de bovenste weg, d.w.z. stash@{0} zal de opgeslagen wijzigingen uit de stashlijst verwijderen.

Other episodes