The way I structure my commits, it is usually (but not always) easier and more reliable for me to replay my commits one at a time on top of the main branch and see how each relatively small change needs to be adapted in isolation–running the full test suite at each step to verify that my changes were correct–than to be presented with a slew of changes all at once that result from marrying all of my changes with all of the changes made to the main branch at once. So I generally start by attempting a rebase and fall back to a merge if that ends up creating more problems than it solves.
Anyone mind explaining to me how
git rebase
is worth the effort?git merge
has it’s own issues but I just don’t see any benefit to rebase over it.Well, rebase allows you to resolve the same conflict ten times in a row instead of doing it once. How cool is that?
Nope, you just need to do it once: https://git-scm.com/book/en/v2/Git-Tools-Rerere.
Why would I ruin all the fun?
Squash your branch first
Doesn’t this defeat the purpose, may as well merge then no?
Do not merge your unfinished stuff into main.
I don’t like merging main into my branch because I don’t understand git, and I feel like that can make a confusing history.
The way I structure my commits, it is usually (but not always) easier and more reliable for me to replay my commits one at a time on top of the main branch and see how each relatively small change needs to be adapted in isolation–running the full test suite at each step to verify that my changes were correct–than to be presented with a slew of changes all at once that result from marrying all of my changes with all of the changes made to the main branch at once. So I generally start by attempting a rebase and fall back to a merge if that ends up creating more problems than it solves.