We're working on improving this type of workflow, I appreciate this feedback and am sorry that you ran into it! We currently rely on git's force-with-lease feature, which uses the state of remote-tracking branches to determine whether you are overwriting someone else, and this is not a silver bullet as certain tools update remote-tracking branches in the background.
With that said, for now you might need to either check the state of branches remotely manually or create a branch stacked upon your coworkers to ensure this doesn't happen 100% of the time...
Fwiw, even if you force push, GitHub keeps track of the old SHAs so you can always reset your branch locally to what remote had that you overwrote, and then try to reconcile that with your local changes, but it would require a little Git-fu