git 遇到的奇怪问题

在使用Git时,作者遇到本地分支gitpull失败的问题,原本以为gitpull操作会自动处理更新。通过研究发现,需要先执行`gitfetch-porigin`来同步远程仓库的更新。gitfetch-p会获取远程仓库的新分支并删除已删除的分支,然后通过gitmerge将更新合并到本地分支。了解到gitpull实际上等同于gitfetch后跟gitmerge,作者记录了这一解决过程。
摘要由CSDN通过智能技术生成

前置条件: 自己在新建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
取回远程主机所有分支的更新,再与本地的所有分支合并,如果指定某个特定的分支,则是取回远程主机某个分支的更新,再与本地的指定分支合并

记录一下,大佬勿喷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值