Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Een Rebase-Operatie Uitvoeren | Meer Geavanceerde Workflows
GitHub Fundamentals

Een Rebase-Operatie Uitvoeren

Veeg om het menu te tonen

Wijzigingen opnieuw baseren op de main-branch

Voordat we onze wijzigingen kunnen rebasen, moeten we eerst overschakelen naar de main-branch en de laatste wijzigingen ophalen:

git checkout main
git pull
Overschakelen naar de main-branch en wijzigingen ophalen

Laten we nu de commit-boom bekijken:

git log --graph --oneline --all
Commit-boomstructuur vóór rebase

Op dit moment hebben zowel de main- als de feature/payment-branch commits na de meest recente gemeenschappelijke voorouder. Dit betekent dat een fast-forward merge niet mogelijk is.

Als we deze branches zouden samenvoegen, zou er een three-way merge plaatsvinden. We willen echter onze geschiedenis lineair houden, dus voeren we een rebase uit van de feature/payment-branch op de main-branch. Dit kan door over te schakelen naar de feature/payment-branch en het git rebase-commando uit te voeren:

git checkout feature/payment
git rebase main
Wijzigingen opnieuw baseren

Fast-forward samenvoeging

Aangezien de rebase is geslaagd, bekijken we opnieuw onze commit-boom:

git log --graph --oneline
Commit-boom na rebase

Zoals verwacht is de commitgeschiedenis nu lineair met de laatste commit op de feature/payment branch. Nu kunnen we een eenvoudige fast-forward samenvoeging uitvoeren op de main branch:

git checkout main
git merge feature/payment
Branches samenvoegen

Laten we controleren of beide branches naar dezelfde commit verwijzen door te kijken naar de laatste commit:

git log -n 1
Laatste commit

De featurebranch verwijderen

De main-branch bevat nu de laatste commit met het geïmplementeerde betalingssysteem, dus we kunnen zowel de lokale als de remote feature/payment-branch veilig verwijderen. Met het volgende commando verwijder je de remote branch:

git push --delete origin feature/payment

Nu kunnen we de lokale branch verwijderen:

git branch -d feature/payment
Branches verwijderen

Ten slotte kunnen alle aangebrachte wijzigingen terug naar de remote repository worden gepusht:

git push
Verwijdering pushen

Om te controleren of de feature branch zowel lokaal als op afstand is verwijderd, kun je het volgende commando uitvoeren, waarmee alle (-a staat voor all) lokale en remote branches worden weergegeven:

git branch -a
Alle branches weergeven

Zoals je kunt zien, is de feature/payment branch succesvol verwijderd en zijn er nu nog maar twee branches: main en john/test met hun remote tegenhangers.

Over het algemeen werkt rebasen goed voor lokale wijzigingen die nog niet gedeeld zijn, maar het kan aanzienlijke problemen veroorzaken voor wijzigingen die al naar een remote repository zijn gepusht en mogelijk door andere medewerkers zijn gedownload. Het rebasen van commits die door anderen worden gebruikt, kan verwarring en conflicten veroorzaken doordat de commitgeschiedenis wordt herschreven.

Als algemene regel geldt: vermijd het rebasen van wijzigingen die naar remote repositories zijn gepusht om deze problemen te voorkomen.

question mark

Waarom voert feature/payment een fast-forward merge uit nadat main is gerebased op git merge feature/payment?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 5

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 3. Hoofdstuk 5
some-alt