git“你的分支和'origin / master'在远程回购的新克隆之后已经分歧了

时间:2013-07-04 16:25:55

标签: git

使用

克隆远程存储库时
  1. git clone 'repo_url'
  2. git pull
  3. git status
  4. 我收到此消息 -

    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时验证这一点......

2 个答案:

答案 0 :(得分:7)

不确定原因,除非:

  • 其他人在origin上有一个git push --force,在您克隆回购邮件之间完成,并且您撤回了相同的回购
  • 获取refspec(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