前置条件: 自己在新建beta test dev之类分支的时候,都会用 git branch --set-upstream xxxx origin/xxx 设置好与云端对应分支的连接 。因此自认为 在每个本地分支 git pull 的时候,应该是没有问题的,不需要用 git pull origin xxx 命令的。结果就出现了下面这种pull失败的情况。
然后自己尝试用 git pull origin test 是可以pull远端内容的 。
解决方案:
使用: git fetch -p origin
git fetch -p
获取远程仓库的新分支以及删除远程仓库已删除的分支
自己不明白原理,后来查询资料,大概了解到的意思是: 我们本地的gti中有个与云端仓库对应的文件夹,存储着与云端的每个分支对应的commit信息,是否是最新,通过git pull来进行先git fetch 将云端的每个分支下载到本地, 再通过 git merge 操作将下载下来的分支信息合并到本地的对应分支上。
git pull 实质上,等同于先做git fetch,再做git merge
取回远程主机所有分支的更新,再与本地的所有分支合并,如果指定某个特定的分支,则是取回远程主机某个分支的更新,再与本地的指定分支合并
记录一下,大佬勿喷