Een van de meest essentiƫle concepten van Git is de staging area
. Zijn gebruik kan je manier van werken op een fundamentele manier veranderen, verbeteren! Laten we kijken hoe het precies werkt en wat je moet weten om het te gebruiken.
Met de meeste andere versie beheer systemen zijn er 2 plaatsen voor het opslaan van je data: je werk kopie (de folders/bestanden die je op dit moment gebruikt) en de data opslag (waar het versie beheer systeem besluit je wijziging te verpakken en op te slaan). In Git is er een derde optie: de staging area
of (index
). Het is in zekere zin het laadperron waar je kunt bepalen welke wijzigingen worden verzonden.
Omdat de werk folder en wat wordt opgeslagen door Git los van elkaar zijn, heeft de ontwikkelaar de vrijheid zijn commit
op te bouwen hoe hij dat wil, en niet op de manier waarop het versie beheer systeem het je verteld. Omdat er een laag zit tussen wanneer Git daadwerkelijk je data opslaat en het maken van je wijzigingen, krijg je veel meer flexibiliteit en controle.
Het gebruiken van de index
is eenvoudig met de git add
en git commit
commando’s. Je add
bestanden aan de index, en wanneer je tevreden bent commit
je de wijzigingen:
Wanneer ze in het repository
zitten kun je ze push-en
naar remote
(=verre) locaties, ze mergen
naar andere branches
, en nog veel meer. Er zijn ook acties die je op de index
zelf kunt uitvoeren, zoals tijdelijk je wijzigingen parkeren.
Laten we door een eenvoudig voorbeeld van het gebruik van de index
lopen. Ik heb zojuist wat wijzigingen gedaan:
$ git status On branch master Changed but not updated: (use "git add <file>..." to update what will be committed) modified: README.md modified: about.html Untracked files: (use "git add <file>..." to include in what will be committed) help.txt no changes added to commit (use "git add" and/or "git commit -a")
In dit voorbeeld zijn er 2 bestanden waar Git weet van heeft, en een onbekend bestand: help.txt. Wanneer we git add .
uitvoeren, zullen alle bestanden die gewijzigd zijn en alle nieuwe bestanden die nog niet bekend zijn bij Git aan de index
worden toegevoegd. Het add
commando slaat de data niet op, het plaatst ze slechts op het laadperron, klaar om door de git commit
vrachtwagen te worden meegenomen.
$ git add . $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: README.md modified: about.html new file: help.txt
Zoals de prompt zegt, je kunt git reset HEAD <bestand>
gebruiken om je bestanden uit de index
te verwijderen. Op deze manier kun je precies wat je wil commit-en
. Je kunt ook specifieke regels uit je bestand commit-en
mocht je dat echt willen Wanneer je je afvraagt hoe je wijzigingen ongedaan kunt maken, daar is zelfs ook een hele tip aan gewijd. Vanaf hier, zal een git commit
alle bestanden naar de data opslag van Git verplaatsen, en je zit gebakken!
$ git commit -m "Adding stuff" Created commit e793200: Adding stuff 2 files changed, 3 insertions(+), 0 deletions(-) create mode 100644 help.txt
Wanneer je op zoek bent naar meer informatie over de index
, bekijk dan deze fantastische posts:
Als je nog andere bronnen kent die de index
uitleggen, laat het ons weten in het commentaar!