git ready

leer git een commit per keer
by Nick Quaranto

bestanden negeren

Toegevoegd op 19 Jan 2009

We hoeven niet alles in ons project onder te brengen in Git, of het nu gecompileerde code, bestanden met wachtwoorden, of tijdelijke bestanden die editors leuk vinden om te creëren zijn. Normaliter is het zaken uit de handen van je versie beheer systeem houden moeilijk om te regelen en vervelend om op te zetten. Niet met Git! Het gebruiken van het .gitignore bestand samen met wat andere opties, we gaan leren hoe je per project en per gebruiker ignores kunt configureren.

De gemakkelijkste en simpelste manier is het creëren van een .gitignore bestand in de bovenste folder van je project. De bestanden die je verkiest te negeren hebben impact op alle folders in je project, tenzij zij hun eigen .gitignore bestand bevatte. Dit is handig, je hebt immers een plek waar je ignores configureert in tegenstelling tot SVN’s svn:ignore wat op iedere folder gezet moet worden. Tevens kan het bestand zelf geversioneerd worden, wat zeken een goed ding is.

Hier is een basis .gitignore:

$ cat .gitignore

# Can ignore specific files
.DS_Store

# Use wildcards as well
*~
*.swp

# Can also ignore all directories and files in a directory.
tmp/**/* 

Natuurlijk kan dit nog veel complexer gemaakt worden. Je kunt ook uitzonderingen op regels toevoegen door een regel te beginnen met het ! teken. Je kunt hiervan een voorbeeld bekijken op GitHub guide on ignores.

Je dient op twee dingen te letten met het negeren van bestanden: Ten eerste, als een bestand al bekend is bij Git, zorgt het toevoegen aan .gitignore er niet voor dat Git ophoud met het registreren van de wijzigingen in dat bestand. Je zult git rm --cached <file> uit moeten voer om je bestand te behouden maar wel te negeren. Ten tweede, lege folders worden door Git niet beschouwd. Als je deze wilt toevoegen aan je Git repository dien je er iets in te plaatsen. Normaliter is een touch .gitignore afdoende om de folder op te nemen in het archief.

Je kunt ook de $GIT_DIR/info/exclude ($GIT_DIR is meestal je .git folder) openen en aanpassen voor per project ignores. Het probleem hierbij is dat deze wijzigingen niet geversioneerd zijn, gebruik dit dus uitsluitend wanneer je persoonlijke bestanden hebt die je niet wilt delen met anderen in je project.

Je laatste optie voor het negeren van folder is het toevoegen van een per gebruiker ignore zetting door een core.excludesfiles optie in je configuratie bestand toe te voegen. Je kunt een .gitignore bestand in je HOME folder zetten wat al je repositories zal beïnvloeden met het volgende commando:

git config --global core.excludesfile ~/.gitignore

Lees manpage als je meer wilt leren over hoe ignores werken. Zoals altijd als je ignore gerelateerde tips hebt, laat het ons weten in de commentaar sectie.