四,pull和fetch的区别在哪里

5 篇文章 0 订阅
订阅专栏

虽然用git的时间不长,但是我更喜欢深入去理解每个命令背后都做什么了,这样才能知道哪个命令适合什么样的场景

 

大神的总结: pull = fetch + merge

 

怎么理解这个总结呢,我还是决定去深入学习一下,大家随我一起来吧!

 

基础知识

git的工作原理还是需要一些的,小白同学可以参考 here

 

首先,介绍下git repository的结构,其实就是一系列的文件和文件夹~~~~

 

我们今天要关注的是refs这个文件夹,打开这个文件夹我们会看到如下的结构:

./refs/heads/master

./refs/remotes/origin/master

refs/heads/master是一个文件,它保存的是我们本地分支master的最新的commit id

refs/remotes/origin/master也是一个文件,它保存的是远程库中master分支的最新的commit id (这里说最新不是很准确的,应该说是上次你执行pull或fetch时,当时远程库master分支的最新commit id)

 

fetch到底干了什么

在使用fetch前,我们先看看当前的状态是什么样子:

refs/heads/master的值是 46dc044b237805d417a2fa7171a5c42dab064858  

refs/remotes/origin/master的值是 46dc044b237805d417a2fa7171a5c42dab064858  

 看一下branch的情况:

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

 

在远程库中,我们新建一个dev分支,并在master分支下添加一个文件,下面我运行fetch,然后

refs/heads/master的值是 46dc044b237805d417a2fa7171a5c42dab064858  没有变化

refs/remotes/origin/master的值是 c83043f653e8e1495b4356ff735d1c6fd0d90c83   已经变了  

branch的情况:

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev                              我们看到远程新添加的分支了
  remotes/origin/master


可见,fetch将refs/remotes/origin/master的内容更新成了远程库中最新的commit id,还将远程库中的分支信息更新到了本地。其实,fetch也将上次pull或fetch之后所有的远程仓库的提交都下载到本地仓库了,只是没有将其与master分支进行合并(最后这句话不是很好理解,我们知道git的分支只是指向了一个commit列表中的最新的commit,其他commit可以单独存在于仓库中,即使他不属于这个commit列表。 如果想将这些commit加入master的commit列表,这就是一个merge操作了)

 

TBC

 

 

git pull 和 git fetch到底什么区别
jakpopc的博客
07-23 827
收集整理每周优质开发者内容,包括、、等方面,每周五首发于Git是一款非常受欢迎,也非常强大的版本管理工具。但是,它的工作流程相对于SVN等其他版本管理工作也复杂很多,对于刚接触的同学会有很多操作难以理解。例如,当我们和其他同学进行协同开发时,我们每个人都从远程仓库拉取了一份代码到本地仓库,此时每个人电脑上的本地仓库和远程仓库都是一致的。但是,随着开发的不断推进,如果其他同事事先已经把修改的代码推送到远程仓库,当我们后面再push时就会发生冲突。gitpull和gitfetch。和和。...
Git pull命令与fetch命令的区别
01-20
Git pull命令与fetch命令的区别 今天在公司碰到个问题,公司不使用master分支作为主分支,而使用release分支作为主分支,这就碰到了个问题,也就是当clone一个项目下来的时候,如果master跟release分支有冲突,就不能pull了,自己还要解决冲突。 刚下一个项目,也不懂冲突到底怎么回事,也就很难搞了。 这个时候,就不得不提Git的两个命令,git fetch和git pull Git中从远程的分支获取最新的版本到本地有这样2个命令: Git fetch git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin
关于Git中fetchpull区别
fortyman的博客
08-10 6089
知识点
fetchpull区别
Xp545945的博客
09-12 4994
更新本地代码可以使用git fetch + git merge或者git pull两种方法。在实现上fetchpull也有一些区别。 fecth git fetch只从远程拉最新的代码,并修改本地缓存的远程分支的commitID,git fetch之后使用git status就会看到本地分支落后远程分支这种提示。工作示意图: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-na8oiNHr-1599873308075)(image/fetch示意图.png)] pull gi
Git中fetchpull命令的区别
不断成长的我
08-04 3655
两者具体的区别 fetch Git中的fetch命令是将远程分支的最新内容拉到了本地,但不立即将远程分支的变更合并到本地分支上。当我们执行完fetch命令后,在执行git branch命令会发现此时后本地多了一个FETCH_HEAD的分支。我们可以checkout到该分支查看远程分支的最新内容。以便于我们有机会查看远程分支都做了什么改动。 当我们检查完成后在checkout回本地分支执行merg
Git fetchpull的详解及区别
09-15
在Git的日常操作中,`git fetch`和`git pull`是两个常用但又略有区别的命令,它们都涉及到从远程仓库获取更新,但处理这些更新的方式有所不同。 ### `git fetch` `git fetch`命令的主要作用是从远程仓库获取最新的...
git fetch与git pull区别详解
10-15
其中,`git fetch` 和 `git pull` 是两个经常被使用的命令,但它们在使用上有显著的区别。这篇文章将详细解析这两个命令的区别。 首先,`git fetch` 命令的作用是获取远程仓库的最新变化,但它不会自动合并到你的...
pullfetch
最新发布
07-27
pullfetch 都是 Git 版本控制系统中的命令,用于从远程仓库获取代码更新。 1. pullpull 命令用于从远程仓库获取最新的代码,并自动合并到当前分支。它的语法为: ``` git pull [远程仓库名] [分支名] ``` ...
git pull和git fetch区别小结
Focusing on your own Mind :) -> 站在巨人的肩膀上
08-23 5145
总而言之,几句话概括  1.git pull = git fetch + git merge git pull会将本地库更新至远程库的最新状态 由于本地库进行了更新,HEAD也会相应的指向最新的commit id 2.git fetch的时候只是将remote的origin进行update  但是并没有在local的branch进行merge 一张图概括:
git中pullfetch区别是什么
weixin_45549481的博客
01-05 3465
git中pullfetch区别是什么
GIT fetchpull之间的区别
无所谓的专栏
03-29 9101
git fetch和git pull都可以用来更新本地库,它们之间有什么区别呢? 每一个本地库下都有一个.git的隐藏文件夹,文件夹中的文件保存着跟这个本地库相关的信息 本地库并没有变化,也就是说,git fetch只会将本地库所关联的远程库的commit id更新至最新 HEAD没有变化很容易理解,因为本地库并没有变化 本地库更新至最新,git pull会将本地库更新至远程库的最新状态 为了更好的理解,画了个图: ...
详解git pull和git fetch区别
热门推荐
weixin_41975655的博客
09-28 14万+
前言 在我们使用git的时候用的更新代码是git fetch,git pull这两条指令。但是有没有小伙伴去思考过这两者的区别呢?有经验的人总是说最好用git fetch+git merge,不建议用git pull。也有人说git pull=git fetch+git merge,真的是这样吗?为什么呢?既然如此为什么git还要提供这两种方式呢? 1. 相同点 首先在作用上他们的功能是大致相...
Git fetch和git pull区别
快乐&&平凡
03-29 3020
Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge 操作方法如下:  build_001$git branch    develop_wanghai * master #把服务器origin的master分支 下载到本地的tmp_branch分支里; git
【git 版本控制】fetchpull区别
sinat_33255495的博客
02-28 382
git有个工作空间的概念,分别为 工作空间、暂存区、本地仓库、远程仓库。 pull=fetch+merge fetch是从远程仓库更新到本地仓库,pull是从远程仓库直接更新到工作空间中 ...
详解git pull和git fetch区别(原理)
Jason的学习笔记
04-17 2346
感谢原文作者:马恩光 原文链接:https://blog.csdn.net/weixin_41975655/article/details/82887273 前言 在我们使用git的时候用的更新代码是git fetch,git pull这两条指令。但是有没有小伙伴去思考过这两者的区别呢?有经验的人总是说最好用git fetch+git merge,不建议用git pull。也有人说git pu...
git 的pullfetch区别
weixin_44943389的博客
06-15 620
命令将从远程存储库下载最新的分支、标签和对象,但不会自动合并或修改您的本地分支。它只是将远程更改下载到本地,使您可以查看和比较它们与您的本地分支。这个命令不会更改您当前的工作目录或分支。之后会自动将远程更改合并到您的当前分支中。它将下载远程分支的最新更改,并将其合并到您当前所在的分支上。这个命令会更新您的本地分支,并且可能会产生一个合并提交。将下载远程更改并自动合并到当前分支。如果您希望自动合并并将远程更改与本地分支合并,可以使用。的远程存储库中获取最新更改,并将其合并到指定的。
git pull和git fetch区别
csj50的专栏
03-25 758
pullfetch都是拉取,但是他们的区别很大 一、pull git pull之后有两种操作: 1、Pulled Diff 2、Pulled Log 二、fetch git fetch之后有4种操作: 1、Show log 2、Reset 3、Fetch 再次fetch 4、Rebase ...
写文章

热门文章

  • 开源的自动化测试平台 8504
  • Appium连接手机时报权限错误 requires:android.permission.WRITE_SECURE_SETTINGS 8420
  • shell 替换所有文件中的指定字符串 8216
  • ANSI是个啥??? 5148
  • 使用vscode时,安装插件失败的解决方式 4010

分类专栏

  • 大数据 1篇
  • vue+flask 4篇
  • 测试框架 2篇
  • 测试 1篇
  • 安全性测试 2篇
  • docker 2篇
  • Appium 2篇
  • Git学习笔记 5篇
  • Robot framework 10篇
  • Selenium 6篇
  • Shell 2篇
  • Linux 3篇
  • Git 7篇
  • zookeeper
  • golang 2篇
  • 设计模式 2篇
  • JAVA 24篇
  • spring 3篇
  • Python 3篇
  • 测试管理 5篇
  • 区块链 2篇
  • 测试平台 1篇
  • C++测试 1篇
  • 编码 1篇
  • 数据库 4篇
  • 面试
  • Live Stream 1篇
  • WebRTC 3篇

最新评论

  • javascript,声明变量和导入时,大括号的特殊用法

    YJ_2640693256: 是的,用大括号解构出对象中的某一个属性 obj.name相当于{name}

  • PG库中,Having子句中为什么不能用列的别名

    weixin_57402214: mysql有点特殊,从group by开始就可以跟别名; oracle的话,从distinct开始跟别名

  • 在windows下启动容器时,报 the input device is not a TTY. If you are using mintty, try prefixing the command

    提桶跑: 进入不了容器

  • Appium连接手机时报权限错误 requires:android.permission.WRITE_SECURE_SETTINGS

    倚恋: 感谢,真的有用耶,真我Q3手机的解决方案跟OPPO的一样

  • PG库中,Having子句中为什么不能用列的别名

    这样不好吧!: group by 子语句之后就可以使用别名了,你这个确定having不能使用别名?

大家在看

  • 行列式的计算方法
  • STM32实现简单的智能办公系统 892
  • 学习STM32的DS18B20温度传感器 764
  • 【叮当快药-注册/登录安全分析报告】
  • 【C++指南】inline内联函数详解 1634

最新文章

  • PyQt5模块构成
  • 图片资源共享
  • java -cp 命令运行java代码时, 报主类找不到
2023年1篇
2021年5篇
2020年24篇
2019年74篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家重庆特色玻璃钢雕塑优势前进玻璃钢雕塑商场户外美陈拱门宣城玻璃钢雕塑定做价格玻璃钢不锈钢园林雕塑厂家淮安玻璃钢仿真水果雕塑深圳玻璃钢动物雕塑哪家有信阳玻璃钢校园不锈钢雕塑西安抽象玻璃钢雕塑商场季节性美陈南昌景区玻璃钢雕塑生产厂家沈阳小区玻璃钢雕塑公司白色茶杯玻璃钢花盆重庆佛像玻璃钢雕塑定制玻璃钢雕塑工艺标准商场美陈装饰网玻璃钢长颈鹿雕塑厂商商场大型美陈介绍玻璃钢风景雕塑九江玻璃钢雕塑销售电话三门峡市玻璃钢雕塑雕刻安徽玻璃钢动物雕塑厂嘉定玻璃钢雕塑哪里买濮阳玻璃钢人物雕塑白山玻璃钢雕塑多少钱天津仿铜玻璃钢雕塑多少钱天津展会玻璃钢雕塑设计东光玻璃钢花盆花器密云玻璃钢花盆花器玻璃钢骏马雕塑工程香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化