Subtree toevoegen en samenvoegen
Leer de opdrachten om een externe repository als subtree toe te voegen en updates uit de upstream te halen.
Subtree toevoegen en samenvoegen is een gratis Geavanceerde Git: monorepo's, submodules en werkstromen-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Geavanceerde Git: monorepo's, submodules en werkstromen. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Geavanceerde Git: monorepo's, submodules en werkstromen bevat in totaal 4 lessen.
Subtree: externe code integreren
Welkom! In deze les gaan we dieper in op Git Subtree, een krachtige manier om een andere Git-repository rechtstreeks in je project te integreren.
In tegenstelling tot submodules voegt subtree de geschiedenis van de externe repository samen met die van jou, waardoor deze aanvoelt als een native onderdeel van je project.
Waarom `git subtree add` gebruiken?
Subtree biedt in veel gevallen een eenvoudigere werkwijze dan submodules. Dit zijn enkele voordelen:
- Geen speciale opdrachten: Nadat de subtree is toegevoegd, werk je met de inhoud ervan zoals met gewone bestanden.
- Eén repository: Geen afzonderlijke
.git-mappen of ingewikkelde initialisatie van submodules. - Eenvoudiger voor gebruikers: Anderen die je project klonen, hoeven geen speciale submodule-opdrachten te leren.
Je repository voorbereiden
Controleer voordat je een subtree toevoegt of je hoofdrepository schoon is (geen niet-vastgelegde wijzigingen). Je hebt het volgende nodig:
- De URL van de externe repository.
- De branch of commit die je wilt integreren (bijvoorbeeld
mainofmaster). - Een gekozen pad binnen je hoofdrepository voor de subtree.
De opdracht `git subtree add`
Om een externe repository als subtree toe te voegen, gebruik je de opdracht git subtree add. Deze ziet er als volgt uit:
git subtree add --prefix=<path> <repository> <ref>
--prefix=<path>: De map in je project waarin de subtree komt te staan.<repository>: De URL van de externe Git-repository.<ref>: De branch (bijvoorbeeldmain) of commit-hash uit de externe repository.
Een voorbeeldsubtree toevoegen
Stel dat je een gedeelde utility-library uit een afzonderlijke Git-repository wilt toevoegen aan een map src/shared in je huidige project. Je gebruikt dan:
git subtree add --prefix=src/shared/utility-library https://github.com/myorg/utility-library.git main
Deze opdracht haalt de main-branch van utility-library op en integreert de geschiedenis ervan in je map src/shared/utility-library.
De optie `--squash` gebruiken
Wanneer je een subtree toevoegt, zie je vaak de optie --squash:
git subtree add --prefix=path repo_url main --squash
De optie --squash combineert alle commits uit de geschiedenis van de externe repository tot één enkele commit in je hoofdproject. Zo blijft de geschiedenis van je hoofdproject overzichtelijker, maar verlies je de details van de afzonderlijke commits uit de oorspronkelijke geschiedenis van de subtree.
Waarom een subtree bijwerken?
Nadat je een subtree hebt toegevoegd, kan de oorspronkelijke externe repository nieuwe updates ontvangen. Om je geïntegreerde code actueel te houden met de upstream-bron, moet je die wijzigingen ophalen.
Zo beschikt je project altijd over de nieuwste versies van de gedeelde componenten of bibliotheken die je als subtree hebt opgenomen.
De opdracht `git subtree pull`
Om updates uit een upstream-subtree op te halen, gebruik je een vergelijkbare opdrachtstructuur:
git subtree pull --prefix=<path> <repository> <ref>
Je ziet dat dezelfde --prefix, <repository> en <ref> worden gebruikt als bij het toevoegen. Git gebruikt deze om de juiste upstream-bron voor je subtree te identificeren.
De voorbeeldsubtree bijwerken
Laten we doorgaan met ons voorbeeld van utility-library. Om de nieuwste wijzigingen uit de main-branch ervan naar je project op te halen, voer je het volgende uit:
git subtree pull --prefix=src/shared/utility-library https://github.com/myorg/utility-library.git main
Deze opdracht haalt nieuwe commits uit de main-branch van utility-library op en voegt ze samen met je lokale map src/shared/utility-library.
Controle van de subtree-opdracht
Welke opdracht gebruik je om een externe repository aanvankelijk als subtree in je project op te nemen en er een nieuwe map voor te maken?
Samenvatting: subtrees toevoegen en samenvoegen
Je hebt geleerd hoe je externe repositories met Git Subtree kunt integreren!
- Gebruik
git subtree addmet--prefix, de URL van de repository en een branch om externe code in je project op te nemen. - De optie
--squashhelpt om de geschiedenis van je hoofdproject overzichtelijk te houden. - Gebruik
git subtree pullmet dezelfde parameters om upstream-updates op te halen en met je subtree samen te voegen.
Subtree biedt een krachtig, geïntegreerd alternatief voor submodules voor het beheren van gedeelde code!
Leer Geavanceerde Git: monorepo's, submodules en werkstromen met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Subtree toevoegen en samenvoegen” gratis?
Ja — de volledige tekst van “Subtree toevoegen en samenvoegen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Geavanceerde Git: monorepo's, submodules en werkstromen wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Geavanceerde Git: monorepo's, submodules en werkstromen bevat in totaal 4 lessen.
Wat leer ik in “Subtree toevoegen en samenvoegen”?
Leer de opdrachten om een externe repository als subtree toe te voegen en updates uit de upstream te halen. Je oefent met Geavanceerde Git: monorepo's, submodules en werkstromen door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Geavanceerde Git: monorepo's, submodules en werkstromen te beginnen?
Ervaring vooraf is niet nodig. Geavanceerde Git: monorepo's, submodules en werkstromen op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Subtree toevoegen en samenvoegen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Geavanceerde Git: monorepo's, submodules en werkstromen?
Ja. Elke les over Geavanceerde Git: monorepo's, submodules en werkstromen bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Inleiding tot Git Subtree
- Subtree toevoegen en samenvoegen
- Vergelijking van Subtree en submodule
- Wijzigingen upstream pushen met subtree split