Gemakkelijk een Git-checkout uitvoeren naar een externe tak [Stap-voor-stap]

Ben je nieuw in een team en heb je de instructie gekregen om een externe branch uit de Git-code-opslagplaats te controleren? Of je nu deel uitmaakt van een uitgestrekte onderneming of een compact team, het beheersen van externe Git-branches is essentieel voor naadloze samenwerking aan code. In deze handleiding duiken we in het proces van het ophalen van code uit een externe Git-opslagplaats, met de nadruk op het ‘git checkout remote branch’ commando.

Not a reader? Explore this related video tutorial!

Not seeing the video? Ensure your ad blocker is disabled.

Vereisten

  • Deze tutorial maakt gebruik van versie 2.30 van Git SCM (source code management) op Windows 10, hoewel het compatibel is met elk door Git ondersteund besturingssysteem.

Andere mogelijke installatiemethoden voor Windows zijn onder andere Chocolatey en Git4Win.

Begrip van een externe branch

Git-opslagplaatsen registreren en volgen een reeks gerelateerde commits binnen een branch. Standaard bevindt een commit zich in de momenteel actieve branch, meestal aangeduid als main of master.

A remote branch is a branch located in a remote Git repository. These remote repositories, termed as “remotes,” are the destinations your local Git repository will scout for external commit updates once set up.

Ontdek beschikbare branches met behulp van het Git branch-commando. De branch gemarkeerd met een asterisk (*) is de actieve branch. De hieronder vermelde branches zijn uitsluitend lokaal, omdat er nog geen externe branches zijn opgehaald.

git branch
List of local branches shown from the git branch command.

Git Checkout Remote Branch beheersen

Stel dat je een lokale Git-repository hebt en de behoefte ontstaat om samen te werken met andere ontwikkelaars. Hier komt het Git checkout-commando van pas, waarmee je de nieuwste commits van een externe branch op een externe Git-repository kunt ophalen.

Zodra een externe branch is geconfigureerd, zal Git de externe branch spiegelen in plaats van een lokaal-only branch. Hieronder staat een voorbeeld van het commando git checkout remote <branch>.

git checkout remote main

Kloon de externe Git-repository

Nu je over een bestaande repository beschikt, is het tijd om in te duiken. Volg de onderstaande stappen om de externe repository naar een lokale map op je machine te klonen.

1. Het is vaak eenvoudiger om een externe repository te klonen via de HTTPS-URL dan via SSH om certificaat- en firewallproblemen te omzeilen.

  • Ga naar de repository op GitHub.
  • Klik op de Code-knop en selecteer HTTPS.
  • Klik op het pictogram Kopieren naast de link om de URL naar je klembord te kopiëren.
Locating the HTTPS clone URL in GitHub.

2. Nadat je de HTTPS-URL naar je klembord hebt gekopieerd, open je een command-line interface met je voorkeurs-CLI, zoals Windows Command Prompt of de Windows Terminal.

3. Navigeer naar de map waar je de gekloonde repository wilt hebben. Voor deze tutorial wordt de map git in de home-directory gebruikt, zoals te zien is in de screenshots. Voer het volgende commando uit om de repository te klonen, waarmee een submap wordt aangemaakt voor de externe repository.

# GitHub git clone https://github.com/Adam-the-Automator/git-checkout-remote-branch
Cloning a remote repository to the local machine.

4. Ga naar de gekloonde repository met het commando cd git-checkout-remote-branch.

Voer het volgende status-commando uit om te controleren of de repository succesvol is gekloond. Het Git status-commando laat de verschillen zien tussen de lokale branch en de externe branch, en helpt bij het bepalen of je branch verbonden en up-to-date is! De standaard Git remote wordt “origin” genoemd en is gekoppeld aan de “main” externe branch. git status

git status
Checking a repositories status.

Voor de meeste moderne Git-software is main de standaard primaire tak. Je kunt een oudere toepassing tegenkomen die master gebruikt als de standaard taknaam, maar beide namen zijn functioneel hetzelfde. Deze tutorial gebruikt takken met de namen main, RemoteBranch, SomeBranch en AnotherBranch.

Wat is een Git Remote en Hoe Remote-takken bijhouden

Het klonen van een repository maakt automatisch een verwijzing naar een externe bron, ook wel een remote genoemd. Deze verwijzing wordt gebruikt om nieuwe commits te controleren of nieuwe wijzigingen naar het externe repository te pushen.

A Git repository itself may have multiple remotes, but a branch can only reference a single remote.

Het volgen van een externe tak legt een relatie met een lokale tak. Deze relatie stelt je in staat om moeiteloos commits van de externe tak naar de lokale tak te pushen of te pullen. Bovendien bepaalt een gevolgde tak hoe ver vooruit of achterop de lokale tak is ten opzichte van de externe tak wat betreft commits.

Het vermelden van de remotes van een Git-repository

Ten eerste, zorg ervoor dat de repository waarmee je werkt Git remotes heeft. Bekijk Git remotes in je repository met het git remote-commando zoals hieronder getoond. In dit geval worden twee remotes weergegeven, origin en remote2.

git remote
Viewing a repositories two configured remotes.

Twee extra gevolgde externe repositories hebben de namen origin en remote2, waar jouw remotes mogelijk anders zijn.

Om meer details te verkrijgen over de geconfigureerde externe locaties, voeg de v-schakelaar toe om de volledige Git externe URI weer te geven.

git remote -v
Viewing verbose details about repo remotes.

Je vraagt je misschien af waarom er aparte URI’s zijn voor fetch en push. Sommige Git-workflows staan toe om updates voor een repository te controleren op een andere URI dan waar je wijzigingen naartoe stuurt, dit wordt het triangulaire workflow genoemd.

Bekijken van beschikbare externe branches

Geef alle beschikbare branches weer, zowel lokaal als extern, in je repository met het branch-commando. Voeg om de externe branches ook weer te geven, de all-schakelaar toe, zoals hieronder geïllustreerd.

git branch --all

In de onderstaande afbeelding wordt de externe repository origin gebruikt in deze tutorial zoals verwacht. Desalniettemin laat deze afbeelding alle branches van de externe genaamd Remote2 weg.

Viewing all known branches in a repo (including remotes).

Als een branch op je externe locatie niet wordt weergegeven in de lijst met branches, moet je je lijst met beschikbare externe branches bijwerken, zoals besproken in de volgende sectie.

Bijwerken van de beschikbare externe branches

Soms kan een externe repository branches toevoegen of wijzigen. Om ervoor te zorgen dat je werkt met de meest up-to-date branches, is het noodzakelijk om het git fetch-commando uit te voeren.

De fetch-opdracht maakt verbinding met de externe repository en haalt een lijst op van alle beschikbare branches. Bekijk na het uitvoeren van de git fetch-opdracht uw momenteel bijgehouden branches om te zien dat de externe branch nu zichtbaar is, zoals hieronder gedemonstreerd.

# Beschikbare externe branches ophalen
git fetch

# Controleer of alle branches nu beschikbaar zijn in de lokale Git-repository
git branch --all

Hieronder is de branch remotes/origin/RemoteBranch nu zichtbaar in de lijst van beschikbare externe branches na het uitvoeren van de git fetch-opdracht.

Using git fetch to update the list of available remote branches.

De fetch-opdracht controleert alleen op updates van de externe repository die momenteel wordt bijgehouden in de huidige branch. Om Git te laten controleren op updates van alle remotes in de repo, ongeacht de bijhoudstatus, voeg de parameter all toe.

git fetch --all

Om de beschikbare branches van een specifieke externe repository op te halen, voeg de naam van de externe repository toe aan de git fetch-opdracht, zoals Remote2 in het onderstaande voorbeeld, dat de branch main ophaalt.

# Lijst met beschikbare branches in een lokale Git-repository
git branch --all
# Beschikbare branches ophalen van remote2
git fetch Remote2
# Controleer of de remote2-branch, main, nu beschikbaar is
git branch --all
Fetching main from remote2 with the git fetch command.

Elke keer dat u op afstand naar updates zoekt met git fetch, git pull, of git push, vergelijkt Git commits met de externe tak. Lokale takken kunnen elke Git externe tak volgen. Bovendien kunnen meerdere lokale takken worden ingesteld om dezelfde externe tak te volgen.

Weergave van het volgen van elke externe tak

Om de gevolgde externe tak naast de overeenkomstige lokale tak te zien, gebruikt u de vv parameter met het commando git branch. De resultaten van het commando tonen een lijst van externe en lokale takken in het formaat [<extern>/<tak>] zoals hieronder geïllustreerd.

git branch -vv
Listing remote tracking of all local branches.

Wijzigen van het volgen van een tak naar een externe tak

Er kan een noodzaak zijn om uw lokale tak aan te passen om een andere externe tak te volgen. Om uw huidige tak in te stellen op een specifieke externe tak, gebruikt u de u parameter, zoals hieronder geïllustreerd.

git branch -u Remote2/main
Setting what remote to track for the current branch.

Uitchecken van Git externe takken

Met nieuwe takken die zijn gemaakt in het externe Git repository, moet u mogelijk een git checkout externe tak operatie uitvoeren. Het uitchecken van een externe repositorytak wordt uitgevoerd via het checkout commando.

Als de volgende voorwaarden zijn voldaan, zal Git autonoom bepalen wat de juiste externe bron is, een lokale kopie van de externe tak downloaden en de lokale kopie instellen om te volgen tegen de externe tak. Controleer of de volgende voorwaarden niet zijn voldaan via de resultaten van het `git branch –all` commando.

  • A local branch with the same name does not already exist.
  • Er bestaan geen meerdere externe bronnen die dezelfde externe taknaam gebruiken.

Om de operatie voor het uitchecken van een externe tak uit te voeren, gebruikt u het `git checkout` commando en typt u de naam van de externe tak zoals hieronder weergegeven.

git checkout RemoteBranch
Creating a local branch from a remote branch with git checkout.

Als uw lokale repository al een lokale tak met dezelfde naam bevat, voeg dan de `b` parameter toe om een alternatieve lokale taknaam aan te geven vóór de externe tak om uit te checken.

git checkout -b AnotherBranch origin/RemoteBranch
Creating a local copy of a remote branch with an alternate local branch name.

Als uw lokale repository meerdere externe bronnen heeft met dezelfde taknaam, geef dan aan welke externe bron en tak moet worden gevolgd voor lokale commits.

git checkout --track origin/RemoteBranch
Creating a local copy of a remote branch with tracking enabled.

Toekomstige versies van Git geven mogelijk de voorkeur aan het gebruik van het `git switch` commando voor het wijzigen en aanmaken van takken. Het Git `switch` commando is alleen voor takken, terwijl het Git checkout commando veel mogelijkheden heeft. Irshad S. heeft een goede inleiding geschreven over de redenering als je meer wilt lezen.

Een Lokale Tak Pushen naar een Externe

Bij het maken van een lokale branch zonder een overeenkomstige externe branch voor tracking, kun je de branch naar de externe repository duwen met behulp van het git push-commando. De meest directe methode om een nieuwe branch op je voorkeursremote op te zetten, is door de u-parameter te gebruiken.

De u-parameter, zoals eerder gebruikt, vereist de argumenten van de repositorynaam en de branchebron. Door alleen HEAD als de bronbranche te specificeren, begrijpt Git dat het de huidige lokale branche naam moet gebruiken als de naam op de externe, in dit geval NewBranch.

# Check uit en schakel over naar NewBranch
git checkout -b NewBranch
# Maak NewBranch aan op de externe origin
git push -u origin HEAD
# Controleer of de branches nu op de externe bestaan
git branch -vv
Pushing a local branch to an upstream remote named origin with the same name as local.

HEAD is een snelkoppeling die eenvoudigweg betekent de huidige branch. Je kunt andere branches naar de externe repository pushen en tracking instellen door hun naam te gebruiken in plaats van HEAD.

Soms komt de naam van de huidige lokale branch niet overeen met de naam van de externe branch. Om een andere naam te gebruiken, specificeer de gewenste branchnaam na de bron, verbonden door een dubbele punt, zoals hieronder gedemonstreerd.

# Maak de huidige branch op de externe origin aan als AnotherBranch
git push -u origin HEAD:AnotherBranch
# Controleer of de lokale NewBranch nu bestaat als AnotherBranch op de externe origin
git branch -vv
Pushing a local branch to an upstream remote named origin with an alternate remote branch name.

Volgende stappen en aanvullende Git-bronnen

Na het essentiële van Git, het beheren van remotes, en het uitvoeren van `git checkout` voor externe branches te hebben doorgenomen, beschik je nu over een schat aan kennis die zal helpen bij het voorkomen van toekomstige frustraties. De stappen om een externe branch uit te checken in Git en gedeelde best practices zullen dienen als onschatbare bronnen voor de toekomst.

Als je dieper wilt ingaan op andere aspecten van het beheren van een Git-repository, worden de volgende bronnen ten zeerste aanbevolen:

  • A primer on detached heads: Discover scenarios where a detached HEAD is beneficial or inadvertent, and how to handle it.
  • Git switch: Een commando dat specifiek is voor het omgaan met branches, in tegenstelling tot het veelzijdige `Git checkout`.

Source:
https://adamtheautomator.com/git-checkout-remote-branch/