opsy_
And awesome to see what you're doing with Flutter! Looks like Map support has come a long way. Loaded well for me on desktop.
UX feedback - definitely want some more onboarding for the web experience (as others have mentioned), and maybe a smoother intro into the big space. The map view is really cool, good for generating interest, but also a bit overwhelming (where to start?).
Looks like you're onto something.
From there, I find it straightforward to conceptualize all the different commands. Commit/push/reset/merge/pull/rebase/etc are all just different graph manipulations. There's usually multiple ways to achieve the end graph you want.
If you don't understand the data structure, you have no good mental model and it's just a series of ritual. If something goes off the ritual path, you're in trouble.
Squash merges are perfect to me for the bulk of PRs- atomic test-passing iterations on the working product. Exactly what I want to see in my history. Useful for bisection. Good for reviewing line-based code changes as I can find all the related work for that feature.
They don't seem appropriate for long lived feature branches, or merging into release branches, but those aren't really being discussed here.
I'd roughly say that's the case with OPs aliases. Useful if you know what you're doing, or maybe would work with a strict team policy. Otherwise are just going to create more trouble (especially with that force pushing bit in there...).
ETA: I fully support usability! "real programmers just read the manual" arguments be damned.
Not to say that doesn't make for a good learning moment.