If you’re like Dave O’Neill and find yourself working on a Git branch that has diverged from master to the point that a merge would make Linus Torvalds cry, why not just replace master? Dave provides step by step instructions in this article:
Over time, master diverged significantly from the current maintenance branch. Recently, we decided to rebase our development work on the maintenance branch, but there were just too many ugly conflicts to resolve. As we didn’t want to keep all of the code on that branch anyway, the easiest solution was to rename our 2.63-branch to master and resume development there, cherry-picking some of the useful things from the development branch.