Cursusinhoud
GitHub Fundamentals
GitHub Fundamentals
Een Rebase-Operatie Uitvoeren
Wijzigingen herbaseren op de main-branch
Voordat we onze wijzigingen kunnen herbaseren, moeten we eerst overschakelen naar de main
-branch en de laatste wijzigingen ophalen:
Laten we nu de commit-boom bekijken:
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 gaan we een rebase uitvoeren 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:
Fast-forward samenvoeging
Aangezien de rebase succesvol is, bekijken we onze commit-boom opnieuw:
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 naar de main
-branch:
Laten we controleren of beide branches naar dezelfde commit verwijzen door naar de laatste commit te kijken:
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. Het volgende commando verwijdert de remote branch:
Nu kunnen we de lokale branch verwijderen:
Tot slot kunnen alle aangebrachte wijzigingen terug naar de remote repository worden gepusht:
Om te verifiëren dat de feature-branch zowel lokaal als op afstand is verwijderd, kun je het volgende commando uitvoeren, waarmee alle (-a
staat voor alle) lokale en remote branches worden weergegeven:
Zoals je kunt zien, is de feature/payment
-branch succesvol verwijderd en zijn er nu slechts 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!