I've let master and origin/master get stuck in the sidelines, and am no longer interested in the changes on that branch.
I followed these instructions to get my local master pointing to the right place Make the current git branch a master branch
git checkout better_branch
git merge --strategy=ours master # keep the content of this branch, but record a merge
git checkout master
git merge better_branch # fast-forward master up to the merge
which worked fine except git status gives
C:\data\localprojects\Beko2011Azure [master]> git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 395 and 2 different commits each, respectively.
#
nothing to commit, working directory clean
so how do I now persuade origin/master (github) to reflect my master. Anything orphaned on origin/master can be safely abandoned.
To have origin/master the same as master:
git push -f origin master:master
Discussion on the parameters:
-fis the force flag. Normally, some checks are being applied before it's allowed to push to a branch. The-fflag turns off all checks.originis the name of the remote where to push (you could have several remotes in one repo)master:mastermeans: push my local branchmasterto the remote branchmaster. The general form islocalbranch:remotebranch. Knowing this is especially handy when you want to delete a branch on the remote: in that case, you push an empty local branch to the remote, thus deleting it:git push origin :remote_branch_to_be_deleted
A more elaborate description of the parameters could be found with man git-push
Opposite direction: If you want to throw away all your changes on master and want to have it exactly the same as origin/master:
git checkout master
git reset --hard origin/master
来源:https://stackoverflow.com/questions/16103810/force-my-local-master-to-be-origin-master