什么可能导致`git pull`看不到远程变化?

Jus*_*tin 5 git merge pull atlassian-sourcetree

在什么情况下git pull origin master命令可能导致与git checkout master- > git pull- > git checkout feat-a- > 不同的工作副本状态git merge master

长话故事.

我有一个功能分支,我们可以调用它feat-a.我是这个分支机构的唯一开发人员.分支是从master分支创建的.两个分支都有远程起源,origin/feat-a并且origin/master.没什么特别的,你典型的git存储库安排.

今天我想从远程更新我的功能分支master.从早期与其他开发人员的沟通,我知道当我将远程合并master到我的功能分支时会有相互矛盾的变化.

我正在使用SourceTree.因此,在feat-a检出分支的情况下,我在origin/master分支上打开了上下文菜单并选中了Pull origin/master into current branch.我很震惊地看到Git报告我的分支已经是最新的.我知道这不对,远程master分支必须有变化.我重复了几次这个命令.始终获得相同的最新消息.

为了100%肯定,我做到了"漫长的道路".我检查了master分支,点击了Pull按钮.该分支更新了最新的提交.然后我检查了feat-a分支,然后在主分支上拉了上下文菜单并选中了Merge master into current branch.瞧!这是我期望得到的合并冲突!

这让我感到困惑.我曾经假设pullorigin/master我的当前分支执行是与检出master,拉出,检出另一个分支然后合并master到当前分支相同(除了从远程拉到master另一个分支不会更新我的本地master,但那不应该不会影响这个问题).

从本质上讲,由于某种原因,pull命令从origin/master进入feat-a正试图说服我,有上没有变化origin/master,只有用开关支路和手动合并和预期一样很长的路要走.

我不确定SourceTree是否正在做一些可能会影响这个问题的特殊内容.

LeG*_*GEC 1

你说你使用Sourcetree,所以我猜你实际上并没有git pull origin master在命令行上输入。我的猜测是,这要么是 GUI 消息中令人困惑的内容,要么是 Sourcetree 中的错误。

我宁愿询问 Sourcetree 开发人员。