Git Checkout

Deze pagina is een onderzoek van het git checkout commando. Het behandelt gebruiksvoorbeelden en randgevallen. In termen van Git is een “checkout” het schakelen tussen verschillende versies van een doelentiteit. Het git checkout commando werkt op drie verschillende entiteiten: bestanden, commits en branches. Naast de definitie van “uitchecken” wordt de uitdrukking “uitchecken” gewoonlijk gebruikt om de handeling van het uitvoeren van het git checkout commando te impliceren. In het onderwerp Wijzigingen ongedaan maken, hebben we gezien hoe git checkout kan worden gebruikt om oude commits te bekijken. De focus voor het merendeel van dit document zal zijn bij het uitchecken op branches.

Het uitchecken van branches is vergelijkbaar met het uitchecken van oude commits en bestanden in de zin dat de werkdirectory wordt bijgewerkt zodat deze overeenkomt met de geselecteerde branch / revisie; nieuwe wijzigingen worden echter opgeslagen in de projectgeschiedenis – dat wil zeggen, het is geen alleen-lezen bewerking.

Vertakkingen uitchecken

De git checkout commando laat je navigeren tussen de branches gemaakt door git branch. Door een branch uit te checken, worden de bestanden in de werkdirectory bijgewerkt zodat ze overeenkomen met de versie die in die branch is opgeslagen, en het vertelt Git om alle nieuwe commits op die branch op te nemen. Zie het als een manier om te selecteren aan welke ontwikkelingslijn je werkt.

Het hebben van een speciale tak voor elke nieuwe functie is een dramatische verschuiving van een traditionele SVN-workflow. Het maakt het belachelijk eenvoudig om nieuwe experimenten uit te proberen zonder bang te hoeven zijn bestaande functionaliteit te vernietigen, en het maakt het mogelijk om tegelijkertijd aan veel niet-gerelateerde functies te werken. Bovendien vergemakkelijken vertakkingen ook verschillende samenwerkingsworkflows.

Het git checkout commando kan af en toe worden verward met git clone. Het verschil tussen de twee commando’s is dat kloon werkt om code op te halen uit een externe repository, of het uitchecken werkt om te schakelen tussen versies van code die al op het lokale systeem staan.

Gebruik: bestaande branches

Ervan uitgaande dat de repo waarin u werkt reeds bestaande branches bevat, kunt u tussen deze branches schakelen met git checkout. Om erachter te komen welke branches beschikbaar zijn en wat de huidige branchnaam is, execute git branch.

 

Het bovenstaande voorbeeld laat zien hoe je een lijst met beschikbare branches kunt bekijken door de git branch commando, en schakel over naar een gespecificeerde branch, in dit geval de feature_inprogress_branch.

New Branches

Git checkout werkt hand in hand met git branch. De git branch opdracht kan worden gebruikt om een nieuwe branch aan te maken. Als je een nieuwe feature wilt starten, maak je een nieuwe branch off met git branch new_branch. Eenmaal aangemaakt kunt u git checkout new_branch gebruiken om naar die branch te schakelen. Bovendien accepteert het git checkout -commando een -b -argument dat fungeert als een gemakkelijke methode die de nieuwe branch maakt en er onmiddellijk naar overschakelt. U kunt aan meerdere functies in een enkele opslagplaats werken door ertussen te schakelen met git checkout.

Het bovenstaande voorbeeld maakt gelijktijdig aan en checkt deze uit. De -b optie is een gemaksvlag die Git vertelt om git branch uit te voeren voordat git checkout wordt uitgevoerd.

Standaard zal git checkout -b de new-branch baseren op de huidige HEAD. Een optionele extra branch-parameter kan worden doorgegeven aan git checkout. In het bovenstaande voorbeeld wordt doorgegeven, die vervolgens new-branch baseert op existing-branch in plaats van de huidige HEAD.

Van branch wisselen

Het wisselen van branch is een eenvoudige handeling. Als u het volgende uitvoert, wordt HEAD naar de tip van .

Git houdt een geschiedenis bij van kassabewerkingen in de reflog. Je kunt git reflog uitvoeren om de geschiedenis te bekijken.

Git Checkout a Remote Branch

Bij het samenwerken met een team is het gebruikelijk om remote te gebruiken repositories. Deze repositories kunnen worden gehost en gedeeld of ze kunnen de lokale kopie van een andere collega zijn. Elke externe repository zal zijn eigen set branches bevatten. Om een remote branch uit te checken, moet je eerst de inhoud van de branch ophalen.

In moderne versies van Git kun je de remote branch uitchecken als een lokale branch.

Oudere versies van Git vereisen de creatie van een nieuwe branch gebaseerd op de remote.

Bovendien kun je een nieuwe lokale branch uitchecken en deze resetten naar de laatste commit op de remote branches.

 

Vrijstaande HEADS

Nu we de drie belangrijkste toepassingen van git checkout op branches hebben gezien, is het belangrijk om de "detached HEAD” state. Onthoud dat de HEAD Git’s manier is om naar de huidige snapshot te verwijzen. Intern is de git checkout commando werkt eenvoudigweg het HEAD bij om naar de gespecificeerde branch of commit te verwijzen. Als het naar een branch verwijst, klaagt Git niet, maar als je een commit uitcheckt, schakelt over naar een "detached HEAD” status.

Dit is een waarschuwing die u vertelt dat alles wat u doet “los staat” van de rest van de ontwikkeling van uw project. zouden beginnen met het ontwikkelen van een functie terwijl u zich in een vrijstaande HEAD -status bevond, zou er geen vertakking zijn waarmee u o het. Als je onvermijdelijk een andere branch uitcheckt (bijvoorbeeld om je feature in samen te voegen), is er geen manier om naar je feature te verwijzen:

Het punt is, je ontwikkeling moet altijd plaatsvinden op een branch – nooit op een vrijstaande HEAD. Dit zorgt ervoor dat je altijd een referentie hebt naar je nieuwe commits. Als je echter alleen naar een oude commit kijkt, maakt het niet echt uit of je in een ontkoppelde HEAD staat bent of niet.

Samenvatting

Deze pagina was gericht op het gebruik van het git checkout commando bij het veranderen van branches. Samengevat verandert git checkout, indien gebruikt op branches, het doel van de HEAD ref. Het kan worden gebruikt om vertakkingen te maken, vertakkingen te wisselen en vertakkingen op afstand af te rekenen. Het git checkout commando is een essentieel hulpmiddel voor standaard Git-bewerkingen. Het is een tegenhanger van git merge. De git checkout en git merge opdrachten zijn cruciale tools om git workflows in te schakelen.

Write a Comment

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *