

I mean should const not be the default? I do want to mutate objects sometimes but usually I just need a view of it’s state and not write access. It also makes mutable data a lot more obvious if whoever wrote the code your reading wasn’t putting const on stuff they should have been. Seems like something all languages with const semantics should have done
It can. It depends on what changed. If both of you touch the same file in a conflicting way you’ll have to merge the commit with the conflict. If you don’t then it just auto magically works.
For example if you have commits A - B - C with a branch A - D with D adding a brand new file you can trivially rebase (IE no need to merge) D onto C for a history of A - B - C - D
The best part about rebasing imo is that you get to merge commit by commit. Using the previous example if there’s a conflict in commit B but nothing in C all you have to do is fix commit D to handle the changes B made, nothing else