-
1. Aan de slag
- 1.1 Over versiebeheer
- 1.2 Een kort historisch overzicht van Git
- 1.3 Wat is Git?
- 1.4 De commando-regel
- 1.5 Git installeren
- 1.6 Git klaarmaken voor eerste gebruik
- 1.7 Hulp krijgen
- 1.8 Samenvatting
-
2. Git Basics
-
3. Branchen in Git
- 3.1 Branches in vogelvlucht
- 3.2 Eenvoudig branchen en mergen
- 3.3 Branch-beheer
- 3.4 Branch workflows
- 3.5 Branches op afstand (Remote branches)
- 3.6 Rebasen
- 3.7 Samenvatting
-
4. Git op de server
- 4.1 De protocollen
- 4.2 Git op een server krijgen
- 4.3 Je publieke SSH sleutel genereren
- 4.4 De server opzetten
- 4.5 Git Daemon
- 4.6 Slimme HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Hosting oplossingen van derden
- 4.10 Samenvatting
-
5. Gedistribueerd Git
-
6. GitHub
-
7. Git Tools
- 7.1 Revisie Selectie
- 7.2 Interactief stagen
- 7.3 Stashen en opschonen
- 7.4 Je werk tekenen
- 7.5 Zoeken
- 7.6 Geschiedenis herschrijven
- 7.7 Reset ontrafeld
- 7.8 Mergen voor gevorderden
- 7.9 Rerere
- 7.10 Debuggen met Git
- 7.11 Submodules
- 7.12 Bundelen
- 7.13 Vervangen
- 7.14 Het opslaan van inloggegevens
- 7.15 Samenvatting
-
8. Git aanpassen
- 8.1 Git configuratie
- 8.2 Git attributen
- 8.3 Git Hooks
- 8.4 Een voorbeeld van Git-afgedwongen beleid
- 8.5 Samenvatting
-
9. Git en andere systemen
- 9.1 Git als een client
- 9.2 Migreren naar Git
- 9.3 Samenvatting
-
10. Git Binnenwerk
- 10.1 Binnenwerk en koetswerk (plumbing and porcelain)
- 10.2 Git objecten
- 10.3 Git Referenties
- 10.4 Packfiles
- 10.5 De Refspec
- 10.6 Uitwisseling protocollen
- 10.7 Onderhoud en gegevensherstel
- 10.8 Omgevingsvariabelen
- 10.9 Samenvatting
-
A1. Bijlage A: Git in andere omgevingen
- A1.1 Grafische interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Visual Studio Code
- A1.4 Git in Eclipse
- A1.5 Git in Sublime Text
- A1.6 Git in Bash
- A1.7 Git in Zsh
- A1.8 Git in PowerShell
- A1.9 Samenvatting
-
A2. Bijlage B: Git in je applicaties inbouwen
- A2.1 Commando-regel Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Bijlage C: Git Commando’s
- A3.1 Setup en configuratie
- A3.2 Projecten ophalen en maken
- A3.3 Basic Snapshotten
- A3.4 Branchen en mergen
- A3.5 Projecten delen en bijwerken
- A3.6 Inspectie en vergelijking
- A3.7 Debuggen
- A3.8 Patchen
- A3.9 Email
- A3.10 Externe systemen
- A3.11 Beheer
- A3.12 Binnenwerk commando’s (plumbing commando’s)
A3.5 Bijlage 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 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 wijzigingen 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 helemaal 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 in zijn volledigheid behandeld in Submodules.