These are the sequence of steps I have performed:
- committed my changes in branch to local master (commit id
dc9afg2k
) git fetch origin master && git merge origin master
git checkout master
git pull
(this pulled all recent changes)git fetch origin master && git merge origin master
git reset --hard origin/master
git checkout branch
git blog
git reset --hard dc9afg2k
(commit successful)git checkout master
git log
(this was gone back to 2 days ago).git pull
(master
is not updating with currentorigin/master
).
An out of sync
master
can happen when the remote repo has received a forced push (git push --force
) which rewrite the history.If you have done commits of your own on master:
make a branch (to remember the current master state)
git branch old_master
make sure you don't have any private file you need to save.
follow this guide
That would be:
(you can preview the last cleaning steap with a '
-n
' option:git clean -n -f -d
)Note that
git fetch origin master && git merge origin master
could be agit pull origin master
: the interest of keeping the two steps separated is to look at the difference betweenmaster
andorigin/master
before the merge.If you don't make that diff, then a
git pull
is simpler.