
Als je ontwikkelteam Git gebruikt, zul je uiteindelijk het werk van iemand anders moeten bekijken als een branch vanuit een externe repository. Zoals de meeste branch-acties in Git, is overschakelen naar een remote branch eigenlijk vrij eenvoudig.
Git, branches en afstandsbedieningen
Uw lokale vestigingen vinden
Uitchecken bij een afgelegen filiaal
Omgaan met naamconflicten
Omgaan met meerdere externe opslagplaatsen
Voordat u afrekent
Git, branches en afstandsbedieningen
De filosofie van Git is om vaak te vertakken. Met branches kan ontwikkeling plaatsvinden zonder de hoofdcodebasis te wijzigen. Als je ervan overtuigd bent dat je nieuwe, geteste code klaar is, voeg je je nieuwe branch samen met een andere branch. Gewoonlijk is dit de main- of master-branch, maar u kunt twee willekeurige branches samenvoegen.
Vanwege deze flexibiliteit, en de lichtgewicht en snelle manier waarop Git met branches omgaat en samenvoegt, werd branching getransformeerd. In oudere versiebeheersystemen was vertakking een groot probleem. Vertakkingen en samenvoegingen waren traag en foutgevoelig. Git gaf ontwikkelaars gemakkelijke, snelle branching die wordt gebruikt om veel verschillende workflows te ondersteunen.
Als je werkt of vrijwilligerswerk doet als onderdeel van een ontwikkelingsteam dat Git gebruikt, heb je een “centrale” Git-repository, op afstand van de computer van elke software-engineer. Dit staat bekend als de externe repository, of gewoon de “remote”. Hier worden de commits en wijzigingen in uw lokale repository verzonden wanneer u een push uitvoert.
Dat doen de andere ontwikkelaars natuurlijk ook. Dit maakt het gemakkelijk om samen te werken. Als je toegang nodig hebt tot het werk van een andere ontwikkelaar, haal je gewoon hun code op uit een branch op de externe repository. Als ze toegang tot je werk nodig hebben, halen ze je code op uit een branch in de repository die een van je lokale branches volgt.
In Git kan een ontwikkelingsproject meerdere afstandsbedieningen hebben. Een lokale branch kan echter maar één remote branch volgen. Dus zolang je met de juiste remote werkt, is het uitchecken van een remote branch met meerdere remotes hetzelfde als het gebruiken van een enkele remote.
Uw lokale vestigingen vinden
U moet naamconflicten vermijden. Als je een lokale branch hebt die toevallig dezelfde naam heeft als de remote branch die je gaat uitchecken, heb je twee opties. U kunt uw lokale branch hernoemen en de remote branch uitchecken. Op die manier heeft je lokale branch die de remote branch volgt dezelfde naam als de remote branch. Of je kunt de remote branch uitchecken en Git vertellen om een ​​lokale tracking branch aan te maken met een nieuwe naam.
Gebruik de git branch opdracht.
git branch

Deze lokale repository heeft een master branch en drie andere branches. Het sterretje geeft aan wat de huidige tak is. Als u van filiaal naar filiaal gaat, moet u het filiaal waarmee u wilt werken uitchecken.
git checkout new-feature
git status

Het eerste commando verandert de branch voor ons, zodat “new-feature” de huidige branch is. De git status commando verifieert dat voor ons.
We kunnen heen en weer springen tussen branches, nieuwe wijzigingen doorvoeren, updates van de afstandsbediening halen en lokale updates naar de afstandsbediening pushen.
Uitchecken bij een afgelegen filiaal
Er is een vertakking op de externe repository die niet aanwezig is op onze machine. Een ontwikkelaar genaamd Mary heeft een nieuwe functie gemaakt. We willen overschakelen naar die remote branch zodat we die versie van de software lokaal kunnen bouwen.
Als we een fetchzal Git de metadata terughalen uit de externe repository.
git fetch

Want dit is de eerste fetch we hebben gedaan sinds Mary haar branch naar de remote repository pushte, er is ons verteld dat er een nieuwe branch is genaamd “origin/mary-feature”. De standaardnaam voor de eerste externe repository die aan een project wordt toegevoegd, is “oorsprong”.
Of we dit bericht nu zien of niet, we kunnen Git altijd vragen om de branches in de externe repository op te sommen.
De -r (remote) optie vertelt Git om te rapporteren over de branches die zich op de remote repository bevinden.
git branch -r

Het punt om hier op te merken is dat Git zijn lokaal kopie van de metadata van de afstandsbediening. Daarom gebruikten we de git fetch opdracht om ervoor te zorgen dat de lokale kopie van de metadata up-to-date is.
Zodra we het filiaal hebben gevonden dat we willen, kunnen we het gaan bekijken. Wij gebruiken de git checkout commando met de -b (branch) optie, gevolgd door de naam die we zullen gebruiken voor de lokale branch, gevolgd door de naam van de remote branch.
git checkout -b mary-feature origin/mary-feature

We kunnen zien dat we de remote branch hebben uitgecheckt en een lokale branch hebben gemaakt die wijzigingen in de remote branch zal volgen.
git branch

Onze nieuwe lokale vestiging is nu onze huidige werkende vestiging.
Omgaan met naamconflicten
Als u een lokale branch heeft die dezelfde naam heeft als de remote branch, kunt u de naam van uw lokale branch wijzigen voordat u de remote branch uitcheckt, of u kunt de remote branch uitchecken en een andere lokale branchnaam specificeren.
Om de remote branch uit te checken in een lokale branch met een andere naam, kunnen we dezelfde opdracht gebruiken die we eerder gebruikten, en een nieuwe lokale branchnaam kiezen.
git checkout -b mary-test origin/mary-feature

Dit creëert een lokale branch genaamd “mary-test” die lokale commits naar die branch zal volgen. Pushes gaan naar de remote “origin/mary-feature” branch.
Dit is waarschijnlijk de beste manier om lokale naamconflicten aan te pakken. Als je echt de naam van de lokale en remote branch hetzelfde wilt houden, moet je de lokale branch hernoemen voordat je de remote uitcheckt. Het hernoemen van een branch is triviaal in Git.
git branch -m mary-feature old-mary-branch

U kunt nu de remote “origin/mary-feature”-tak uitchecken.
Omgaan met meerdere externe opslagplaatsen
Als je meerdere remote repositories geconfigureerd hebt, moet je ervoor zorgen dat je met de juiste repository werkt als je de remote branch uitcheckt.
Gebruik de remote commando met de -v (bekijken) optie.
git remote -v

Om alle beschikbare branches te zien, moeten we de metadata van al onze remotes ophalen en vervolgens de remote branches opsommen.
git fetch --all
git branch --all

We kunnen zien dat de branch die we willen in de “origin” afstandsbediening zit. De opdracht om het uit te checken is in hetzelfde formaat dat we al hebben gebruikt. We moeten de externe naam, “oorsprong”, en de taknaam, “mary-feature” specificeren.
git checkout -b mary-feature origin/mary-feature

Voordat u afrekent
Houd voordat u afrekent een paar dingen in gedachten, en het komt goed.
Zorg ervoor dat u naamconflicten vermijdt. Als je een lokale branch hebt met dezelfde naam als de remote branch, beslis dan of je de lokale branch een andere naam geeft of een branch maakt met een andere naam om de remote branch te volgen.
Als u meerdere externe repositories gebruikt, zorg er dan voor dat u de juiste afstandsbediening gebruikt.