git ready

leer git een commit per keer
by Nick Quaranto

opruimen van niet gevolgde bestanden

Toegevoegd op 16 Jan 2009

Onze eerste door lezers aangereikte tip komt van Dav Glass, en wijd uit over een commando dat je gebruikt om je repository netjes opgeruimd te houden. Heb jij een tip die je zou willen delen? Dien hem in!

Bestanden en folders in je werk folder die zijn overgebleven van merges, generatie, of misschien abusievelijk plaatsen kunnen aardig ophopen. Hoe dan ook, je hoeft ze niet te negeren in .gitignore, je kunt ze gemakkelijk verwijderen. Het uitvoeren van

git clean -n -d <path>

zal een test uitvoer van het commando doen en laten zien welke bestanden en folders verwijderd zullen worden. Wanneer dit wordt uitgevoerd op gitready geeft dit het volgend resultaat:

Would remove _posts/2009-01-16-cleaning-up-untracked-files.textile

Het zou zeer ernstig zijn wanneer dit bestand zou zijn verwijderd. Ik heb dit bericht nog niet toegevoegd aan de staging area, derhalve verschijnt dit bestand als untracked. Als je uitsluitend bestanden wilt verwijderen en niet de lege folder, verwijder je de -d optie. Wanneer je zeker bent dat je al deze bestanden wilt wegvagen, zal

git clean -d <path>

de daadwerkelijke verwijdering voor zijn rekening nemen. Wanneer je <path> weglaat zal git het commando op de huidige folder uitvoeren. Verder, het kan nodig zijn dat je de -f optie moet toevoegen afhankelijk van de permissie’s en andere situatie’s die de kop op steken.

Cleaning heeft ook nog een aantal andere handige opties: als je een normale clean wilt uitvoeren en daarbij alle bestanden die git normaliter negeert ook wilt verwijderen, zal the -x vlag je immens helpen. Wanneer je uitsluitend de genegeerde bestanden wilt weggooien en niets anders gebruik je de -X optie.

Dus wanneer we een flink poetsbeurt willen doen:

$ git clean -n -d -x
Would remove .DS_Store
Would remove _posts/.2009-01-16-cleaning-up-untracked-files.textile.swp
Would remove _posts/2009-01-16-cleaning-up-untracked-files.textile
Would remove _site/
Would remove images/.DS_Store
Would remove images/_site/

Het commando zou alle bestanden uit het project’s .gitignore bestand als ook alle bestanden en folders die niet noodzakelijk zijn verwijderen. Zoals altijd let op wanneer je git clean, uitvoert en verifieer wat je daadwerkelijk verwijderd.

Zoals altijd, wanneer je andere gerelateerde trucs met git clean kent laat het ons weten in het commentaar!