Git pull说它是最新的,但它不是

时间:2017-02-02 13:45:13

标签: git git-pull

我从另一台计算机上做了一些更改并将其发送到远程存储库 当我试图从家里做git pull origin <branch>以获得这些改变时 说Already up-to-date,但更改不在我的电脑中,文件没有改变。

为什么呢?

编辑01:

当我尝试git log

  

提交10ewwqe9c030761ad33335e40188dcab598bc2312   作者:姓名
  日期:2016年11月27日星期日23:46:40 -0200
      &LT;在此处提交消息&gt;

如果我在bitbucket提交部分检查此提交代码/名称,我发现该提交比我的远程存储库中存在的最后一次提交落后。

编辑02:

>$ git remote -v

origin  https://bitbucket.org/username/repositoryName (fetch)  
origin  https://bitbucket.org/username/repositoryName (push)    

>$ git fetch origin

From https://bitbucket.org/username/repositoryName
 * [new branch]      myBranch -> origin/myBranch  

>$ git log myBranch..origin/myBranch

commit 0220ff...
Author: John Doe <johndoe@email.com>
Date:   Mon Dec 28 16:43:07 2016 -0200

    Name of my last update to remote repository  

log命令显示最后一次提交,我的远程存储库中的最后一次提交以及我要带到本地文件的那个...但本地文件仍未更改。

2 个答案:

答案 0 :(得分:2)

  

log命令显示最后一次提交,我的远程存储库中的最后一次提交以及我要带到本地文件的那个...但本地文件仍未更改。

您可以使用

myBranch重置为origin/myBranch
git checkout master
git checkout -B myBranch origin/myBranch

(请注意-B myBranch已存在)

答案 1 :(得分:1)

假设您已经git pull origin myBranch已经完成并且它不起作用,并且因为您知道最新的提交,您可以简单地将您的分支指向该提交(在本例中为0220ff):{{1 }}。现在运行git reset 0220ff以验证您是否处于正确的提交状态。正如VonC还提到的那样,你可以创建一个指向远程myBranch git log的分支,但我怀疑如果git checkout -B myBranch origin/myBranch无法识别origin / myBranch的最新变化,那么这可能无效

我仍然不确定为什么git pull origin myBranch不起作用,但看起来你的本地机器知道origin / myBranch的最新变化,所以它理论上应该在其本地对象存储中准备0220ff让你把你的分支指向这个位置。