
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.
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
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
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
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
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
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
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
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
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
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
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
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
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.
We moeten Git vertellen welke remote branch we willen mergen.
git merge origin/mary-feature
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.
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.
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
.