Git
Chapters ▾ 2nd Edition

A3.5 Appendix C: Git Commando’s - Projecten delen en bijwerken

Projecten delen en bijwerken

Er zijn niet veel commando’s in Git die het netwerk benaderen, bijna alle commando’s werken op de lokale database. Als je er klaar voor bent om je werk te delen of wijzigingen binnen te halen (pull) van elders, zijn er een handjevol commando’s die te maken hebben met remote repositories.

git fetch

Het git fetch commando communiceert met een remote repository en haalt alle informatie binnen die in die repository zit die nog niet in je huidige zit en bewaart dit in je lokale database.

We nemen voor het eerst een kijkje naar dit commando in Van je remotes fetchen en pullen en we vervolgen met het kijken naar voorbeelden van het gebruik in Branches op afstand (Remote branches).

We gebruiken het ook in diverse voorbeelden in Bijdragen aan een project.

We gebruiken het om een enkele specifieke refentie op te halen die buiten de standaard ruimte is in Pull Request Refs (Pull Request referenties) en we zien hoe we iets uit een bundel kunnen halen in Bundelen.

We richten een aantal zeer eigen refspecs in om git fetch iets op een net andere manier te laten doen dan standaard in De Refspec.

git pull

Het git pull commando is feitelijk een combinatie van de git fetch en git merge commando’s, waar Git van de remote die je opgeeft gaat ophalen en daarna direct probeert het opgehaalde te mergen in de branch waar je op dat moment op zit.

We stellen je het kort voor in Van je remotes fetchen en pullen en laten zien hoe je kunt bekijken wat het zal gaan mergen als je het aanroept in Een remote inspecteren.

We laten ook zien hoe het te gebruiken als hulp met bij problemen met rebasen in Rebaset spullen rebasen.

We laten zien hoe het te gebruiken met een URL om wijzigingen op een eenmalige manier te pullen in Remote branches uitchecken.

Tot slot, vermelden we heel snel dat je de --verify-signature optie kunt gebruiken om te verifiëren dat commits die je binnenhaalt met GPG getekend zijn in Commits tekenen.

git push

Het git push commando wordt gebruikt om te communiceren met een andere repository, berekenen wat je lokale database heeft en de remote niet, en daarna de verschillen te pushen naar de andere repository. Het vereist wel dat je schrijfrechten hebt op de andere repository en normaalgesproken is dit dus op de een of andere manier geautenticeerd.

We nemen een eerste kijkje naar het git push commando in Naar je remotes pushen. Hier behandelen we de basisprincipes van het pushen van een branch naar een remote repository. In Pushen gaan we iets dieper in op het pushen van specifieke branches en in Tracking branches zien we hoe tracking branches worden opgezet om automatisch naar te pushen. In Remote branches verwijderen gebruiken we de --delete vlag om een branch te verwijderen op de server met een git push.

Door heel Bijdragen aan een project heen zien we een aantal voorbeelden van het gebruik van git push om werk op branches te delen middels meerdere remotes.

We zien hoe we het gebruiken om tags te delen die je gemaakt hebt met de --tags optie in Tags delen.

In Submodule wizigingen publiceren gebruiken we de --recurse-submodules optie om te controleren dat al onze submodule werk is gepubliceerd voordat we het superproject pushen, wat zeer behulpzaam kan zijn als je submodules gebruikt.

In Overige werkstation hooks bespreken we kort de pre-push hook, wat een script is die we kunnen opzetten om te draaien voordat een push voltooid is, om te verifiëren dat pushen hiervan toegestaan is.

Tot slot, in Refspecs pushen kijken we naar pushen met een volledige refspect in plaats van de generieke afkortingen die we normaalgesproken gebruiken. Dit kan je helpen om heel specifiek te zijn over welk werk je wilt delen.

git remote

Het git remote commando is een beheertool voor jouw administratie van remote repositories. Het stelt je in staat om lange URLs op te slaan als afkortingen, zoals “origin” zodat je ze niet elke keer volledig hoeft in te typen. Je kunt er een aantal van hebben en het git remote commando wordt gebruikt om ze toe te voegen, te wijzigen en te verwijderen.

Dit commando wordt in detail behandeld Werken met remotes, inclusief het uitlijsten, toevoegen, verwijderen en het hernoemen.

Het wordt daarnaast in bijna elk daaropvolgend hoofdstuk van het boek gebruikt, maar altijd in de standaard git remote add <naam> <url> formaat.

git archive

Het git archive commando wordt gebruikt om een archiefbestand te maken van een specifieke snapshot van het project.

We gebruiken git archive om een tarball te maken van een project om het te delen in Een release voorbereiden.

git submodule

Het git submodule commando wordt gebruikt om externe repositories te beheren binnen normale repositories. Dit kan zijn voor libraries of andere tyepen gedeelde hulpmiddelen. Het submodule commando heeft een aantal sub-commando’s (add, update, sync, etc) om deze hulpmiddelen te beheren.

Dit commando wordt alleen benoemd en volledig behandeld in Submodules.