I feel that this is a simple and solid approach that's often overlooked:
No matter how long the life of your branch is, it's now being bookmarked with local commits, and then merged with origin/master to avoid a future conflict (aka trainwreck.)
In my experience, Atom (Merge Conflict/Split Diff) and VS Code (GitLens) have nice packages/extensions for Git in general. I would always advise learning git via CLI vs a GUI, since pressing a button is way different from typing commands with the intention of accomplishing something specific.