Git
Waarvoor gebruiken programmeurs Git?¶
Programmeurs gebruiken Git om verschillende redenen:
- Om tijdens het ontwikkelen van code hun werk op een georganiseerde wijze bij te houden.
- Om te experimenteren met nieuwe functies of bugfixes zonder het originele project in gevaar te brengen.
- Om samen te werken met andere ontwikkelaars.
- Om een geschiedenis van wijzigingen te creëren, zodat fouten makkelijker gevonden en opgelost kunnen worden.
Git is dé standaardtool geworden in softwareontwikkeling omdat het snel, betrouwbaar en effectief is voor samenwerking.
Hoe werkt Git?¶
Hopelijk is het nu duidelijk voor jou waarom je als ontwikkelaar git zou gebruiken. In deze sectie leer je over hoe git juist werkt under the hood. Je leert nog niet zelf aan de slag gaan met git, maar leert de nodige voorkennis om te kunnen beginnen.
De status van een bestand in Git¶
Bestanden in Git kunnen zich in één van de drie statussen bevinden: aangepast, gestaged of gecommit. Het begrijpen van deze statussen is essentieel voor het beheersen van de Git-werkwijze:
- Aangepast (Modified): Een bestand is gewijzigd, maar nog niet opgeslagen in de Git-database.
- Gestaged (Staged): Het gewijzigde bestand is gemarkeerd om opgenomen te worden in de volgende commit.
- Gecommit (Committed): Het bestand is veilig opgeslagen in de lokale Git-repository.
Deze statussen helpen je om je wijzigingen te beheren en ervoor te zorgen dat alleen de gewenste aanpassingen worden opgeslagen.
De belangrijkste onderdelen van een Git-project¶
Om deze statussen te beheren, organiseert Git je project in drie secties: de werkdirectory, de staging area en de Git-directory. Elke sectie heeft een specifieke functie:
-
Werkdirectory (Working directory):
-
Dit is de map waarin je wijzigingen aan bestanden aanbrengt.
- Bestanden in de werkdirectory worden uit de Git-directory gehaald zodat je ze kunt bekijken, bewerken en testen.
- Zie het als je werkruimte voor huidige taken.
-
Kan je best vergelijken met een map/folder op je computer.
-
Staging Area:
-
Een tijdelijke ruimte waarin wijzigingen worden voorbereid voordat ze worden gecommit.
- Je kunt selectief alleen de wijzigingen toevoegen die je wilt opslaan, waardoor je meer controle hebt.
-
Ook wel de "index" genoemd, maar meestal aangeduid als de staging area.
-
Git-directory:
- Het hart van je Git-project waar onder meer je volledige git-geschiedenis zich bevindt.
- Bevat ook metadata over je repository.
- Dit is wat wordt gekloond wanneer je een repository kopieert van een andere computer.
De essentie van git is de wisselwerking tussen working-directory, staging area en repository.
De Git-werkwijze¶
De basiswerkwijze in Git kan worden samengevat in drie stappen:
- Wijzig bestanden in je werkdirectory zoals nodig.
- Stage wijzigingen door alleen de bestanden of aanpassingen toe te voegen die je wilt opnemen in je volgende commit.
- Commit wijzigingen om een momentopname van de gestagede bestanden permanent op te slaan in de Git-directory.
Dit proces zorgt voor duidelijke en nauwkeurige versiebeheer:
- Bestanden in de Git-directory worden beschouwd als gecommit.
- Bestanden in de staging area zijn gestaged.
- Bestanden die zijn aangepast maar nog niet zijn gestaged, zijn aangepast.
Git-commando's¶
-
git init
Initialiseert een nieuwe Git-repository in de huidige map. Dit commando wordt gebruikt om versiebeheer te starten in een project. -
git add <bestand>
Voegt bestanden toe aan de staging area, zodat ze klaar zijn om gecommit te worden. -
git commit -m "Bericht"
Maakt een snapshot van de bestanden in de staging area met een beschrijvend bericht. -
git branch
Beheert branches in de repository. Met dit commando kun je een nieuwe branch maken of bestaande branches weergeven. -
git merge <branch-naam>
Combineert de wijzigingen van een opgegeven branch met de huidige branch. -
git pull
Haalt wijzigingen op van een remote repository en voegt ze samen met de huidige branch. -
git push
Stuurt lokale commits naar een remote repository.
Een kort voorbeeld¶
Hier is een scenario waarin al deze commando's worden gebruikt:
- Initialiseren van een repository:
Hiermee wordt een nieuwe Git-repository gemaakt in de huidige map.
- Bestanden toevoegen aan de staging area:
Dit voegt alle bestanden in de map toe aan de staging area.
- Een commit maken:
Hiermee worden de gestage bestanden gecommit met een beschrijvend bericht.
- Een nieuwe branch maken:
Hiermee wordt een nieuwe branch genaamd feature-login
aangemaakt.
- Overschakelen naar de nieuwe branch:
Hiermee wissel je naar de branch feature-login
.
- Wijzigingen samenvoegen:
Na wijzigingen in
feature-login
kun je terugschakelen naarmain
en de branch samenvoegen:
Hiermee voeg je de wijzigingen van feature-login
samen met main
.
- Wijzigingen ophalen van een remote repository:
Dit haalt de nieuwste wijzigingen van de main
branch van de remote repository op.
- Lokale wijzigingen pushen naar de remote repository:
Dit verzendt de lokale commits naar de
main
branch van de remote repository.
Gitgraph-diagram¶
Hier is een visueel overzicht van het scenario met een gitgraph-diagram:
gitGraph
commit id: "Eerste commit"
branch feature-login
checkout feature-login
commit id: "Feature-login toegevoegd"
checkout main
merge feature-login
commit id: "Samenvoegen van feature-login"
pull origin main
commit id: "Ophalen van wijzigingen"
push origin main
commit id: "Wijzigingen naar remote repository"