根据文档,git pull执行git fetch然后执行 git merge,但是在这种情况下执行git pull origin master应该执行git fetch origin master对吗?但是,它似乎没有这样做。这是一个例子。
假设我的远程原始主机(在我的例子中是在 GitHub 上)具有以下历史记录:
commit 1111111 : my first commit
commit 2222222 : a commit from someone else
而且我只有在本地进行第一次提交,如下所示
git checkout master
git log --pretty=format:'%h' -n 1
1111111
git checkout origin/master
git log --pretty=format:'%h' -n 1
1111111
从这里我拉动并查看结果如下:
git checkout master
git pull origin master
git log --pretty=format:'%h' -n 1
2222222
git checkout origin/master
git log --pretty=format:'%h' -n 1
1111111
可以看出,pull 实际上使用来自远程源的新提交更新了我的 master 分支,但我的本地 origin/master 仍然在原处。强迫我做以下事情
git fetch origin master
git checkout origin/master
git log --pretty=format:'%h' -n 1
2222222
这是 git pull 的正确行为还是我配置了一些错误?我查看了 git pull 手册页并没有看到任何建议,但我可能错过了。