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
Laten we nu de commit-boom bekijken:
git log --graph --oneline --all
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
Fast-forward samenvoeging
Aangezien de rebase is geslaagd, bekijken we opnieuw onze commit-boom:
git log --graph --oneline
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
Laten we controleren of beide branches naar dezelfde commit verwijzen door te kijken naar de laatste commit:
git log -n 1
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
Ten slotte kunnen alle aangebrachte wijzigingen terug naar de remote repository worden gepusht:
git push
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
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.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.