git-refresh
At @taustation, we use a tool called git-refresh and for months have had a perfectly clean git history.
Because I'm sick of this …
— (((CurtisOvidPoe))) (@OvidPerl) August 4, 2017
From comments in the above:
# Regardless of the branch you are on, this code:
# - stashes changes (if any)
# - checks out master (if not on master)
# - Do a fast-forward merge
# - checks out your branch (if it's not master)
# - rebases onto master (if branch is not master)
# - pops changes from stash, if any