Git Fetch: een masterclass

Git Fetch: een masterclass
fatmawati achmad zaenuri/Shutterstock.com
Het git fetch commando is als een git pull commando dat je lokale repository bijwerkt met informatie en commits vanuit de remote repository, zonder je werkbestanden te overschrijven.

De Git fetch commando laat je kijken voordat je springt. U kunt ontdekken welke wijzigingen zijn aangebracht in een externe opslagplaats, maar zonder uw lokale bestanden te overschrijven met de externe bestanden.

Inhoudsopgave

Wat is git fetch en wat doet het?
Git ophalen versus trekken
Synchroniseer uw lokale en externe opslagplaatsen met git fetch
Bekijk alle opgehaalde tags
Eerst een droge run doen
Hoe een enkele tak op te halen
Haal alle takken op
Lokale en externe vestigingen vergelijken
Een lokale vestiging synchroniseren met een externe vestiging
De half getrainde puppy

Wat is git fetch en wat doet het?

De fetch commando in Git downloadt commits, bestanden en andere informatie veilig van een externe repository naar je lokale repository. Gebruik fetch als u wilt zien welke wijzigingen andere ontwikkelaars hebben aangebracht, zonder gedwongen te worden de wijzigingen te accepteren. Uw lokale bestanden blijven onaangeroerd. Waarom is dat belangrijk?

Je moet je hoofd erbij houden als je werkt als onderdeel van een ontwikkelingsteam. De externe of centrale repository bevat wijzigingen en nieuwe branches die andere ontwikkelaars hebben gemaakt en naar de externe repository hebben gepusht.

Het is heel goed mogelijk dat iemand de externe kopie heeft bijgewerkt van bestanden die u lokaal op uw computer hebt gewijzigd. Als u terloops een git pull om uw lokale repository bij te werken, merkt u waarschijnlijk dat u samenvoegingen uitvoert voor wijzigingen die u misschien niet eens wilt.

Nadat u de informatie heeft gedownload, kunt u deze bekijken en zien wat de wijzigingen zijn. Hierdoor kunt u een weloverwogen keuze maken over wat u nu wilt samenvoegen, als dat al het geval is, en wat u wilt uitstellen tot later.

Git ophalen versus trekken

De git fetch commando gedraagt ​​zich als de git pull commando maar zonder de stap die uw lokale bestanden overschrijft. Uw lokale repository wordt bijgewerkt en gesynchroniseerd, maar de wijzigingen worden niet naar de werkstatus van uw lokale repository geschreven, dus uw bestanden blijven onaangeroerd.

Of, om het anders te zeggen, de git pull commando is als een git fetch onmiddellijk gevolgd door een git merge .

Synchroniseer uw lokale en externe opslagplaatsen met git fetch

Om alle bijgewerkte metadata en commits van een externe opslagplaats naar uw lokale opslagplaats op te halen, gebruikt u de git fetch opdracht met de naam of URL van de externe repository. Standaard wordt de eerste externe repository “oorsprong” genoemd.

git fetch origin

U kunt het woord “oorsprong” weglaten als u werkt met een enkele externe repository.

git fetch

De opdracht git fetch gebruiken op de standaard externe repository

Dat haalt alle updates op uit de “oorsprong”-repository, maar voegt de wijzigingen niet samen in de werkbestanden. We kunnen zien dat er een nieuwe tak is, “nieuwe tak” genaamd, die voor ons is opgehaald.

Zodra u de fetch commando, kunt u de volledige lijst met branches op de afstandsbediening zien door te gebruiken -r (externe) optie met het commando branch.

git branch -r

Kijkend naar de branches die bestaan ​​op de standaard afstandsbediening

Dit somt alle filialen op die de afstandsbediening kent, die na de fetch bevinden zich ook in uw lokale repository.

Bekijk alle opgehaalde tags

Op dezelfde manier kunt u de tag optie (let op, het is “tag” zonder een “s”) om de lijst met tags te zien.

git tag

De opdracht git tag gebruiken om de tags in de lokale repository weer te geven

Eerst een droge run doen

Hoewel een git fetch voegt de wijzigingen niet samen in uw werkbestanden, het werkt nog steeds uw lokale repository bij. Als je wilt zien wat er verandert fetch commando zal uitvoeren, zonder ze daadwerkelijk te maken, gebruik de --dry-run keuze.

git fetch --dry-run

Gebruik de optie --dry-run om de wijzigingen te zien die de fetch-opdracht zou ophalen

Hoe een enkele tak op te halen

Het ophalen van informatie over een enkele tak is eenvoudig. Voeg de naam van de tak toe aan de opdrachtregel om te vertellen fetch je hoeft alleen maar van die ene tak af te weten.

Hier vertellen we het fetch om de branch “mary-feature” op te halen uit de externe repository “origin”.

git fetch origin mary-feature

Git fetch gebruiken om een ​​enkele remote branch op te halen

Nu de details en inhoud van de remote branch in uw lokale repository staan, kunt u de git checkout commando om een ​​nieuwe branch aan te maken en de remote branch uit te checken. Dit overschrijft geen bestaande bestanden als het de eerste keer is dat je deze branch gebruikt.

git checkout -b mary-feature origin/mary-feature

Een opgehaalde remote branch veilig uitchecken naar een nieuwe lokale branch

Haal alle takken op

Als u meerdere afstandsbedieningen gebruikt, kunt u tijd besparen door alle wijzigingen van alle branches terug te halen naar uw lokale repository door de --all keuze.

git fetch --all

Lokale en externe vestigingen vergelijken

Gebruik om te zien hoe de bestanden in een remote branch verschillen van uw lokale kopieën git fetch gebruik dan de git log commando.

Merk op dat de lokale en afgelegen vestigingen twee periodes hebben “..” hen te scheiden. De --oneline optie toont de commit identifier en het commit bericht.

git fetch
git log --oneline mary-feature..origin/mary-feature

Git gebruiken om de wijzigingen op afstand op te halen en git log om de wijzigingen te tonen

De eenregelige weergave is handig als een tak veel wijzigingen bevat. Om wat meer informatie te zien, laat u de --oneline keuze.

git log mary-feature..origin/mary-feature

De optie --oneline weglaten zodat git meer details laat zien voor elke commit

Dit toont ons de tijd en datum van elke commit, samen met het commit-bericht en de contactgegevens van de auteur van de wijziging.

Een lokale vestiging synchroniseren met een externe vestiging

Als je hebt besloten dat je door wilt gaan en de wijzigingen van de remote branch naar je lokale werkbestanden wilt samenvoegen, kun je deze commando’s gebruiken.

We zullen het filiaal afrekenen om er zeker van te zijn dat we werken, het is ons huidige, werkende filiaal..

git checkout mary-feature

Een filiaal bekijken

Het filiaal wordt voor ons uitgecheckt en er wordt ons verteld dat het achter de externe versie zit. We kunnen gebruiken git pull om het dan te updaten git status om onze status te controleren.

git pull
git status

Wijzigingen van de rmeote-repository naar de lokale repository trekken

Als we enkele wijzigingen hebben aangebracht in onze lokale bestanden, informeert Git ons wanneer we de branch uitchecken dat we een git pull om een ​​samenvoeging te starten.

git checkout mary-feature

Git informeert ons dat de lokale en afgelegen bronnen uiteen zijn gelopen en moeten worden samengevoegd

Een eenvoudige git pull begint het proces van het ophalen van de bestanden en het samenvoegen, of we kunnen er meteen in duiken en gebruiken git merge zelf. We beginnen met ervoor te zorgen dat we met de juiste branche werken

git checkout mary-feature

Git informeert ons dat de lokale en afgelegen bronnen uiteen zijn gelopen en moeten worden samengevoegd

We zullen het vertellen git om onze huidige branch samen te voegen met de branch in de remote repository, zijn er zes verschillende commits die opgelost moeten worden.

Een succesvol samenvoegbericht

We moeten Git vertellen welke remote branch we willen mergen.

git merge origin/mary-feature

git merge gebruiken om de wijzigingen op afstand samen te voegen in een lokale branch

Er wordt een editor geopend zodat we een commit-bericht kunnen geven. We kunnen het voorgestelde bericht accepteren of ons eigen bericht toevoegen. De editor is je standaard editor tenzij Git is geconfigureerd om een ​​andere editor te gebruiken.

Het commit-bericht bewerken

Sla uw wijzigingen op wanneer u klaar bent om verder te gaan. Het samenvoegen gaat automatisch verder wanneer de editor wordt gesloten.

Onze fusie was succesvol omdat er geen conflicten waren.

Een succesvol samenvoegbericht

Conflicten ontstaan ​​wanneer dezelfde regels code worden gewijzigd door twee of meer ontwikkelaars. Als dat het geval is, markeert Git de conflicten in het getroffen bestand. U moet ze een voor een bekijken en kiezen welke wijziging u wilt behouden.

De half getrainde puppy

Net als een puppy in opleiding, fetch zal ophalen waar u om vraagt, maar het zal het niet laten vallen. Als je echt wilt wat de puppy je heeft laten zien, moet je dat doen pull.

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in