什么可能导致 `git pull` 无法看到远程更改?
What might cause `git pull` to fail seeing remote changes?
在什么情况下 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% 确定,我做到了 "the long way"。我检查了 master
分支,单击了 Pull
按钮。该分支已更新为最新的提交。然后我检查了 feat-a
分支,然后在主分支上拉出上下文菜单并选择了 Merge master into current branch
。瞧!这是我期望得到的合并冲突!
这让我很困惑。我假设从 origin/master
执行 pull
到我当前的分支与检出 master
,拉,检出另一个分支然后合并 master
到当前分支是一样的分支(除了从远程 master
拉到另一个分支不会更新我的本地 master
,但这不应该影响这个问题)。
本质上,出于某种原因,从 origin/master
到 feat-a
的 pull
命令试图让我相信 origin/master
没有任何变化,只有很长的路要走切换分支和手动合并按预期工作。
我不确定 SourceTree 是否正在做一些可能影响这个问题的特殊事情。
你说你使用 Sourcetree,所以我猜你实际上并没有在命令行上输入 git pull origin master
。我的猜测是它要么是 GUI 消息中的一些混乱,要么是 Sourcetree 中的错误。
我宁愿问 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% 确定,我做到了 "the long way"。我检查了 master
分支,单击了 Pull
按钮。该分支已更新为最新的提交。然后我检查了 feat-a
分支,然后在主分支上拉出上下文菜单并选择了 Merge master into current branch
。瞧!这是我期望得到的合并冲突!
这让我很困惑。我假设从 origin/master
执行 pull
到我当前的分支与检出 master
,拉,检出另一个分支然后合并 master
到当前分支是一样的分支(除了从远程 master
拉到另一个分支不会更新我的本地 master
,但这不应该影响这个问题)。
本质上,出于某种原因,从 origin/master
到 feat-a
的 pull
命令试图让我相信 origin/master
没有任何变化,只有很长的路要走切换分支和手动合并按预期工作。
我不确定 SourceTree 是否正在做一些可能影响这个问题的特殊事情。
你说你使用 Sourcetree,所以我猜你实际上并没有在命令行上输入 git pull origin master
。我的猜测是它要么是 GUI 消息中的一些混乱,要么是 Sourcetree 中的错误。
我宁愿问 Sourcetree 开发人员。