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.
git pull origin master will pull changes from the origin remote, master branch and merge them to the local checked-out branch. git pull origin/master will pull changes from the locally stored branch origin/master and merge that to the local checked-out branch.
If you need to completely replace the history of your local master with your remote master (for example, if you've been playing with commits or rebase), you can do so by renaming your local master, and then creating a new master branch.
I know, origin is a term for the remote repository and master is the branch there.
To have origin/master
the same as master
:
git push -f origin master:master
Discussion on the parameters:
-f
is the force flag. Normally, some checks are being applied before it's allowed to push to a branch. The -f
flag turns off all checks.
origin
is the name of the remote where to push (you could have several remotes in one repo)
master:master
means: push my local branch master
to the remote branch master
. The general form is localbranch: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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With