使用
克隆远程存储库时git clone 'repo_url'
git pull
git status
我收到此消息 -
On branch master
Your branch and 'origin/master' have diverged,
and have 41 and 20 different commits each, respectively
当我使用git pull -a
时,我没有这个问题。
远程仓库上的东西是否不同步?与HEAD和主人? 我该如何解决?
编辑1:
当我运行git branch -a时:这就是它的样子......
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/clothes
remotes/origin/dunnesBranch
remotes/origin/master
编辑2:
在我看来,origin / master并没有指向最新的代码......
然后我跑了'git clone'
git reset --hard origin/master
然后是'git pull'并尝试合并因冲突而失败......
我想...... 远程仓库的HEAD指向最新的提交,origin / master指向不同的旧提交... 我可以在运行git show时验证这一点......
答案 0 :(得分:7)
不确定原因,除非:
origin
上有一个git push --force
,在您克隆回购邮件之间完成,并且您撤回了相同的回购git config --get remote.origin.fetch
)不是+refs/heads/*:refs/remotes/origin/*
。但你可以轻松地重置master:
git reset --hard origin/master
确保master
is tracking origin/master
:
git branch -u origin/master master
并确保你的push policy is 'simple
'(为了将当前分支推送到远程存储库中的相同名称,只有当它被设置为跟踪那里具有相同名称的分支时):
git config --global push.default simple
评论摘要:根本原因似乎与用于这些操作的1.7.x版本的git有关。它似乎与最新的git1.8.3一起使用。
答案 1 :(得分:1)
当通过“修改”,“重置”或类似的git命令更改原始历史记录时,通常会发生这种情况,有关详细信息,请参阅here