Technieken om rebasen minder pijnlijk te maken
Op deze pagina
Ik zie vaak ontwikkelaars main in hun feature branches mergen en pull requests (PR’s) openen met commits van andere branches. Dat leidt tot “git-spaghetti”, met een paar gevolgen:
- Het maakt de commitgeschiedenis ingewikkelder
- Het vergroot het risico op conflicten die anderen moeilijk kunnen oplossen
- Het kan wijzigingen binnenhalen die nog niet klaar zijn voor
main - Het hindert de code review, omdat overbodige wijzigingen afleiden van het eigenlijke doel van de PR
Soft reset vóór het rebasen
Gebruik git reset om terug te spoelen naar het punt waar je branch van de main branch afsplitste. Je wijzigingen blijven intact in je werkmap, klaar om op een schonere, nettere manier te worden gecommit.
git reflog # Identify the divergence point
git reset commit_sha # Soft reset to this point
Voordelen:
- Je wijzigingen blijven in je werkmap
- Het rebasen wordt simpeler omdat je minder commits hoeft te beheren
- Je krijgt een schonere, zinvollere commitgeschiedenis
- Minder druk om een commitbericht te verzinnen, want je squasht ze gewoon tot één
Fetch in plaats van pull
Draai git fetch om je repository bij te werken met de laatste wijzigingen van de remote, zonder die automatisch in je lokale branch te mergen. Zo kun je de wijzigingen bekijken voordat je beslist hoe je ze verwerkt.
git fetch origin
git rebase origin/main # Rebase your branch on the updated main branch
Voordelen:
- Jij bepaalt wanneer je nieuwe wijzigingen van je team binnenhaalt
- Je begrijpt nieuwe commits beter voordat je ze merget of rebaset
- Je houdt makkelijker een lineaire, schone commitgeschiedenis