什么可能导致`git pull`无法看到远程更改?

时间:2016-02-24 13:33:47

标签: git merge atlassian-sourcetree pull

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

长篇故事。

我有一个功能分支,我们称之为feat-a。我是这个分支机构的唯一开发人员。分支是从master分支创建的。两个分支都具有远程起源origin/feat-aorigin/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。瞧!这是我期望得到的合并冲突!

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

基本上,出于某种原因,从pull origin/master feat-a origin/master命令我试图说服我response没有变化,只有很长的切换方式分支和手动合并按预期工作。

我不确定SourceTree是否正在做一些可能影响此问题的特殊内容。

1 个答案:

答案 0 :(得分:1)

你说你使用Sourcetree,所以我猜你实际上并没有在命令行上输入git pull origin master。我的猜测是它在GUI消息中是混乱的,或者是Sourcetree中的一个错误。

我宁愿向Sourcetree开发人员询问。