Issue with git pull master is out of sync with origin master

北城余情 提交于 2019-11-29 04:15:05

问题


These are the sequence of steps I have performed:

  1. committed my changes in branch to local master (commit id dc9afg2k)
  2. git fetch origin master && git merge origin master
  3. git checkout master
  4. git pull (this pulled all recent changes)
  5. git fetch origin master && git merge origin master
  6. git reset --hard origin/master
  7. git checkout branch
  8. git blog
  9. git reset --hard dc9afg2k (commit successful)
  10. git checkout master
  11. git log (this was gone back to 2 days ago).
  12. git pull (master is not updating with current origin/master).

回答1:


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:

git fetch origin
git reset --hard origin/master
git clean -f -d

(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 a git pull origin master: the interest of keeping the two steps separated is to look at the difference between master and origin/master before the merge.
If you don't make that diff, then a git pull is simpler.



来源:https://stackoverflow.com/questions/18907689/issue-with-git-pull-master-is-out-of-sync-with-origin-master

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!