git pull与git fetch及git merge与git rebase的区别

9 篇文章 8 订阅
订阅专栏

一、git pull与git fetch区别

1、两者的区别

两者都是更新远程仓库代码到本地

git fetch相当于是从远程获取最新版本到本地,不会自动merge。只是将远程仓库最新commitid记录更新到本地remote中对应的远程分支,而本地head不更新,仍然保持本地的commitid。


git pull相当于是从远程获取最新版本代码并自动merge。只是将远程仓库最新commitid记录更新到本地remote中,同时本地head也更新到远程拉取下来的commitid记录。 

2、两者的使用 

更新代码一般人都推荐git fetch,之后再自行手动合并,但是麻烦,协作开发,因为代码更新是经常性的

git pull自动合并隐藏过程细节,方便快捷,但是有冲突就麻烦了,不容易对比差异化代码。幸运的是,日常开发中我们解决冲突一般借助于IDE提供的插件,可以很好地对比版本差异,快速解决冲突,所以个人更喜欢用git pull。

二、git merge与git rebase的区别

1、两者的区别

两者都是将公共分支(master)合并到当前分支(feature)

git merge 的合并分支会让两个分支的每一次提交都按照提交时间(并不是push时间)排序,并且会将公共分支(master)和当前分支(feature)的最新一次commit点合并在一起,形成一个新的commit,最终的分支树呈现非整条线性直线的形式。

 


git rebase操作实际上是将当前分支(feature)的所有commit点取消,保存成一个一个的临时patch(保存在".git/rebase"目录中),然后把当前分支(feature)更新到最新的原分支(master),最后把这些保存的临时patch文件,应用到当前分支(feature)上,并把这些patch重新生成一个个对应新的commit hash值,不会形成新的commit点,可以保持整个分支树的完美线性

 

  下图更直观

2、两者的场景

git merge适合公共分支,将其他分支合并到公共分支,merge操作两个分支最新的提交点会形成新的一个提交点,使后合并进来的commit记录仍然保持在后边。

git rebase适合个人分支(只自己一个人提交)。日常开发过程中,个人分支代码需要和公共分支代码保持一致最新,定期合并公共分支代码到个人分支。个人分支一般是处于开发阶段,只有个人提交,执行rebase操作后,从公共分支上合并别人新的commit在我们的commit之前。

公共分支:master、develop、和其他人共同使用的feature,统称为公共分支。

个人分支:只有自己一个人开发提交代码,不存在第二个人提交,统称为个人分支

为什么不要再公共分支使用rebase

假设现在master(公共分支)主分支要把上线后release分支合并进来

master是公共分支,每次上线后的release分支都要合并进来,开发新功能也要从maser拉取新分支。

现在在master上执行rebase操作。会把从release合并过来的commit放在master现有commit的最前边,作为最早的提交,而把master现有的每个提交创建全新的提交来重写项目历史记录,放在maser最后边,作为最新的commit。这样打乱且篡改了历史提交记录。若别人想看公共分支的历史提交记录,它看到的不是完整的历史记录,因为已经被你打乱篡改了。

而且正在开发的其他分支会定期从master上合并代码,使开发分支保持最新,由于在master执行了rebase,maser历史会形成全新的提交,合并过来后,git会认为和本地开发分支不一样,增加冲突可能性,更不知道代码提交顺序性,造成许多诡异现象。

详解git mergegit rebase区别
10-15
与 `git merge` 不同,`git rebase` 是一种“重放”或“平滑”分支历史的方法。在执行 `git rebase` 时,Git 将从共同祖先开始,将一个分支(在这个例子中是 `master`)上的所有更改应用到另一个分支(`develop`)上...
Git->git pullgit pull --rebase的详解
sunshine_guo的博客
06-26 2080
git pullgit pull --rebase的详解的git指令
git mergegit pull区别是什么
我的博客简介
01-18 2919
是用于合并一个或多个分支的命令。你可以将其他分支的代码合并到当前分支中。通常用于合并开发分支或修复分支到主分支上。是用于从远程仓库拉取代码并自动合并到当前分支的命令。都是 Git 中用于合并代码的命令,但它们的使用场景和功能略有不同。都可能会引起代码冲突,需要手动解决冲突后再提交更改。用于从远程仓库下载最新的代码,而。则用于将这些代码合并到当前分支中。
【总结】git pullgit merge
最新发布
weixin_48958486的博客
08-21 459
是一个单独的合并操作,用于将一个分支的更改合并到另一个分支中,通常是在本地操作不同的分支之间使用。类似,如果被合并的分支与当前分支的代码有冲突,你需要手动解决这些冲突。当你想要将远程仓库的最新更改合并到你当前的本地分支时使用。会触发合并冲突,你需要手动解决这些冲突并完成合并。则更适合用于在本地将多个分支的工作成果合并在一起。的组合操作,用于将远程仓库的更改同步到本地。用于将两个不同分支的更改合并到一个分支中。更适合用于保持本地分支与远程分支同步,而。如果远程的更改与本地的修改产生冲突,
git pullgit merge 区别?
资料qun832218493
05-15 1万+
你修改好了代码,先要提交 git commit -am “commit message" 然后有两种方法来把你的代码和远程仓库中的代码合并: a. git pull这样就直接把你本地仓库中的代码进行更新但问题是可能会有冲突(conflicts),个人不推荐。 b. 先git fetch origin(把远程仓库中origin最新代码取回),再git merge origin/master(把本地代码和已取得的远程仓库最新代码合并),如果你的改动和远程仓库中最新代码有冲突,会提示,再去一个一个解决冲突,最后.
git mergegit pullgit fetch
个人学习笔记库,一篇一篇记录成长的足迹
04-20 2850
git 拉取远程分支和分支代码的命令
git fetch - git merge - git pull 指令
既然选择了远方 便只顾风雨兼程 - 永强
04-01 2654
git fetch - git merge - git pull 指令
Git fetchpull以及merge之间的区别
飞!!!的博客
03-22 2万+
笔者当时学习git的时候对fetch以及pull命令之间的区别疑惑不解,被困扰了许久。其实还是对git的原理理解不深才会有这种情况。git对每次提交都会生成一个cmmit id,我们工作区间版本改变其实就是HEAD指针指向的commit id发生变化。这里引用廖雪峰老师的一幅图来展示一下。 图片来源:git教程 master和dev就是两个分支的指针,而HEAD就是我们当前工作区的指针,它指向的...
git pull时冲突的几种解决方式(小结)
10-15
git pull --rebase ``` - **修改量大,直接merge** 这是更常见的情况,当冲突较多时,可以直接合并并解决冲突: ``` git pull # 解决冲突 git add . git commit -m "Resolved merge conflicts" git push ...
Git安装包(2.38.1)64位与32位
11-01
- 追踪远程分支:`git remote add origin <url>`关联远程仓库,并用`git fetch/merge/pull`同步远程更新。 4. **Git的高级特性**: - 分支管理:`git branch`用于列出、创建或删除分支,`git merge`合并分支,`...
如何在Ubuntu 上安装Git与入门教程
04-02
除了这些基本命令,还有许多其他高级特性,如`git fetch`、`git pull`和`git push`,它们用于与其他仓库交互,以及`git bisect`用于调试和查找问题。 协同工作是Git的一个核心优势,`git fetch`用于从远程仓库获取...
Git-2.38-64位安装及说明
09-16
5. **追踪远程分支**:`git remote add origin <repository-url>`关联远程仓库,`git fetch`获取远程数据,`git merge`或`git rebase`合并远程分支。 6. **推送和拉取**:`git push origin <branchname>`将本地分支...
git pullgit pull --rebase
mantou_riji的博客
09-12 9654
通过上面的比较,git pullgit pull --rebase的区分实际上就是git mergegit rebase的区分。为了方便区分我们使用两个不同名分支进行讲解。然后再执行如下命令,是master分支指向最新节点。命令都是从远端拉取代码,更新我们的仓库。
git fetch, git pull, git merge, git rebase
zhulianseu的专栏
03-29 2033
综上,我们还是根据不同的场景合理的使用git pullgit pull --rebase。我目前给开发同学的建议是:本地有单个commit时建议用git pull --rebase, 本地有多个commit时建议用 git pull。对了,前提条件是,远端仓库是可以直接push的,而不是gerrit的那种push成code-review的那种。如果是gerrit上要生成code-review,那么必定是要使用git pull --rebase的。
git commit、git push、git pullgit fetchgit merge 的含义与区别
qq29898765的博客
04-06 7869
git commit、git push、git pullgit fetchgit merge 的含义与区别 git commit:是将本地修改过的文件提交到本地库中; git push:是将本地库中的最新信息发送给远程库; git pull:是从远程获取最新版本到本地,并自动mergegit fetch:是从远程获取最新版本到本地,不会自动mergegit merge:是用于从指定的...
使用git fetchgit rebase处理多人开发同一分支的问题
azureternite的专栏
07-26 1万+
情景有的时候会遇到这种问题,比如说有两个人,在同一个分支进行开发,假设是我自己,跟我的同伴;现在,我写了一部分代码,准备push到远程了,于是我执行git add、git commit,一切ok,没问题,然后git push,这下问题来了,git告诉我说我的push被rejected了,原来,我的同伴在我执行push之前,已经push了若干个commit到远程,因此我不能直接push,而是需要先把他
git pullgit merge 区别
那些年的代码
08-09 6235
你修改好了代码,先要提交 git commit -am “commit message" 然后有两种方法来把你的代码和远程仓库中的代码合并: a. git pull这样就直接把你本地仓库中的代码进行更新但问题是可能会有冲突(conflicts),个人不推荐。 b. 先git fetch origin(把远程仓库中origin最新代码取回),再git merge origin/master...
GIT合并分支的三种方法
热门推荐
zhaoshuangjian
05-26 8万+
GIT合并分支的三种方法
gitmergepull有啥区别
03-16
git mergegit pull 都是用来合并代码的命令,但它们的工作原理是不同的。 git merge 用于将两个分支上的代码合并到一起。当你在本地分支上工作,并希望将某个远程分支上的代码合并到本地分支时,就可以使用 git mergegit pull 则是一个组合命令,它包含了 git fetchgit merge 两个命令。git pull 用于将远程分支上的代码拉取到本地,并自动合并到当前分支上。 总之,git merge 用于合并两个分支上的代码,而 git pull 用于将远程分支上的代码拉取到本地并合并到当前分支。
写文章

热门文章

  • 安装pcre时出现configure: error: C compiler cannot create executables错误 85984
  • gitlab介绍及使用 73550
  • mysql日期范围查找(两个日期之间的记录) 72060
  • presto中常见字符串函数操作 48823
  • nginx配置域名启用http2协议 34212

分类专栏

  • Bigdata 31篇
  • Hadoop 5篇
  • Hbase 9篇
  • Flink 9篇
  • Spark 15篇
  • Hive 12篇
  • Presto 4篇
  • ElasticSearch 12篇
  • Flume 1篇
  • MQ 12篇
  • Kafka 8篇
  • Rabbitmq 3篇
  • RoketMQ 1篇
  • CDH 4篇
  • SpringBoot 2篇
  • SpringCloud 7篇
  • SpringMVC 2篇
  • Mybatis 1篇
  • MySQL 11篇
  • Oracle 1篇
  • Redis 9篇
  • Java 13篇
  • 多线程 3篇
  • JVM 1篇
  • Linux 11篇
  • Git 9篇
  • Nginx 8篇
  • Scala 1篇
  • Tomcat 1篇
  • Idea 2篇
  • Eclipse 4篇
  • perl 1篇
  • Jenkins 1篇
  • Docker
  • 面试 1篇
  • Junit单元测试 2篇
  • 前端 2篇
  • 工具类 3篇

最新评论

  • elasticsearch7常见查询(term、match、bool、filter、match)

    青青草原一匹野码: term可以查询字段类型是text的数据,term区别于match是在检索的时候不对查询参数进行分词,是直接用整个查询参数与text类型的字段分词后的词进行匹配;而match会先对查询参数进行分词,再跟字段类型为text的字段分词后的词进行匹配。

  • elasticsearch7常见查询(term、match、bool、filter、match)

    萌萌小怪兽^_^: 我理解的是:term只能查单个词,text默认分词器下中文是单个字为一个词,英文是每个单词为一个词。可以用term只查text的一个字。

  • elasticsearch7常见查询(term、match、bool、filter、match)

    daleHaven: 博主您好,我是一个es新手有一个想法想和您交流一下,我能不能用term查询来查找字段类型是text的呢?我的意思是我想看看分词器分出来的词,因为我检索时总检索不到,但明明又是存在的,我就怀疑是不是分词器有啥问题导致我在match时不能正常返回,所以想用term来验证一下。

  • hive&presto日期与字符串转换

    CSDN-Ada助手: 如何在 Hive 中进行数据的分割和分片?

  • Kafka的Rebalance机制可能造成的影响及解决方案

    站在巨人肩膀上的CV工程师: 还有一种情况,上新服务增加消费者时也会触发

最新文章

  • Hive中生成自增序列的常用方法
  • 解决MySQL datetime类型时间毫秒四舍五入问题
  • 解决Elasticsearch Connection reset by peer异常
2023年1篇
2022年19篇
2021年11篇
2020年25篇
2019年42篇
2018年54篇
2017年7篇
2016年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为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 网站制作 网站优化