git pull 与 git pull --rebase

5 篇文章 2 订阅
订阅专栏


git pullgit pull --rebase 命令都是从远端拉取代码,更新我们的仓库。

前提知识

四个区:

  • 工作区 :代码在本地存储的目录位置
  • 暂存区 :git可以追踪的代码(工作区可以将代码添加到暂存区(add))——临时存储
  • 本地库 :暂存区的代码可以提交到本地库(commit),并生成对应的版本 ——生成历史版本
  • 远程库:(远程库:如github)本地区的代码可以提交到远程库(push),并生成对应的版本 ——存储在远端

区别git pull 与 git pull --rebase

简单理解

git pullgit pull --merge的简写。
git pullgit pull --rebase 的关系如下:

git pull = git fetch + git merge
git pull --rebase =  git fetch + git rebase
  • git fetch是将远程库的最新内容拉到本地库,用户在检查了以后决定是否合并到工作区中。
  • git merge是将本地的两个分支合并,如果在分支A中执行git merge B,那就是将分支B中的代码合并到分支A中。
  • git pull 则是将远程主机的最新内容拉去到本地库后直接合并到工作区中,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
    图示表示:
    在这里插入图片描述
  • git rebase是将提交到某一分支上的所有修改都移至另一分支上。即如果在B分支上使用git rebase A就是将B分支上的修改都变基(移到)A分支上
    详见: https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA
  • git pull --rebase则是将远程主机的最新内容拉去到本地库后直接变基到工作区中,即:git pull --rebase = git fetch + git rebase,可能会产生冲突手动解决。
    图示表示:
    在这里插入图片描述

git merge与git rebase

通过上面的比较,git pull 与 git pull --rebase的区分实际上就是git merge与git rebase的区分。为了方便区分我们使用两个不同名分支进行讲解。

  • git merge是合并分支。是将yang分支合并到master分支之后,master分支的代码有所改动,会自动commit,生成一个新的结点,并且不会影响之前两分支的提交节点。
    合并前:
    在这里插入图片描述

合并后:
在这里插入图片描述
执行的合并命令:

$ git checkout master
$ git merge yang
  • git rebase是变基。是将yang分支变基到master分支,就是将yang分支的代码改动完全合并到master分支,不会生成新的结点。
    变基前:
    在这里插入图片描述
    变基后:

在这里插入图片描述
执行的变基命令是:

$ git checkout yang
$ git rebase master

然后需要再执行如下命令,是master分支指向最新节点

$ git checkout master
$ git merge yang

在这里插入图片描述
由此可以看出merge和rebase的区别:

  • merge 会多出一次 commit生成一个新节点,rebase不会生成新结点。
  • merge 的提交树是非线性的,rebase 的提交树是线性的(通过重写提交历史)。

git merge与git rebase实际操作

有一个yangMerge分支,有如下提交记录:

commit ... (HEAD -> yangMerge)
Author: ...
Date:   Mon Jan 22 16:36:06 2024 +0800

    fix:merge2

commit ...
Author: ...
Date:   Mon Jan 22 16:34:40 2024 +0800

    fix:merge1

有一个yangRebase分支,有如下提交记录:

commit ... (HEAD -> yangRebase)
Author: ...
Date:   Mon Jan 22 16:36:29 2024 +0800

    fix:rebase2

commit ...
Author: ...
Date:   Mon Jan 22 16:35:03 2024 +0800

    fix:rebase1
  • 如果执行rebase命令:
    在yangRebase分支执行git rebase yangMaster的命令,再查看分支,显示如下内容:
commit ...  (HEAD -> yangRebase,yangMerge)
Author: ...
Date:   Mon Jan 22 16:36:29 2024 +0800

    fix:rebase2

commit ...
Author:...
Date:   Mon Jan 22 16:35:03 2024 +0800

    fix:rebase1

commit ...
Author:...
Date:   Mon Jan 22 16:36:06 2024 +0800

    fix:merge2

commit ...
Author: ...
Date:   Mon Jan 22 16:34:40 2024 +0800

    fix:merge1

之后同步head分支:
在yangRebase分支执行git merge yangMaster的命令

commit ... (HEAD -> yangRebase)
Author: ...
Date:   Mon Jan 22 16:36:29 2024 +0800

    fix:rebase2
  • 如果执行merge命令:
    在yangMerge分支执行git merge yangRebase的命令,再查看分支,显示如下内容:
commit ... (HEAD -> liyangDevMerge)
Merge: ...  // merge生成新结点记录
Author: ...
Date:   Mon Jan 22 16:59:19 2024 +0800

    Merge branch 'liyangDevRebase' into liyangDevMerge

commit ...
Author: ...
Date:   Mon Jan 22 16:59:03 2024 +0800

    fix:rebase2

commit ...
Author: ...
Date:   Mon Jan 22 16:58:42 2024 +0800

    fix:rebase1

commit ...
Author: ...
Date:   Mon Jan 22 16:36:06 2024 +0800

    fix:merge2

commit ...
Author: ...
Date:   Mon Jan 22 16:34:40 2024 +0800

    fix:merge1

可以发现merge命令会生成一个新的合并节点,并且head指针直接定位到当前分支最新提交的merge节点上。

demo-pull-rebase-2-
02-21
"demo-pull-rebase-2-"这个标题可能是指一个关于版本控制操作的示例,特别是与Git相关的操作,如“pull”和“rebase”。在Git中,这些命令用于整合远程仓库的更新到本地工作副本。 `pull`命令是Git中常用的一个功能...
聊下git pull --rebase
dengzai7446的博客
11-12 287
有一种场景是经常发生的。 大家都基于develop拉出分支进行并行开发,这里的分支可能是多到数十个。然后彼此在进行自己的逻辑编写,时间可能需要几天或者几周。在这期间你可能需要时不时的需要pull下远程develop分支上的同事的提交。这是个好的习惯,这样下去就可以避免你在一个无用的代码上进行长期的开发,回头来看这些代码不是新的代码。甚至是会面临很多冲突需要解决,而这个时候你可能还需要对...
Gitpull 操作和 rebase 操作的不同
m0_69438595的博客
06-23 1070
解析 git 两种合并分支的操作的区别:merge 和 rebase
【总结】git pullgit merge
最新发布
weixin_48958486的博客
08-21 460
是一个单独的合并操作,用于将一个分支的更改合并到另一个分支中,通常是在本地操作不同的分支之间使用。类似,如果被合并的分支与当前分支的代码有冲突,你需要手动解决这些冲突。当你想要将远程仓库的最新更改合并到你当前的本地分支时使用。会触发合并冲突,你需要手动解决这些冲突并完成合并。则更适合用于在本地将多个分支的工作成果合并在一起。的组合操作,用于将远程仓库的更改同步到本地。用于将两个不同分支的更改合并到一个分支中。更适合用于保持本地分支与远程分支同步,而。如果远程的更改与本地的修改产生冲突,
Git->git pullgit pull --rebase的详解
sunshine_guo的博客
06-26 2085
git pullgit pull --rebase的详解的git指令
git pull & git push的详细使用
matafeiyanll的博客
03-29 2万+
git pull & git push的详细使用 git pull
git pull --rebase
sinat_41774721的博客
08-31 2万+
最近刚学 git rebase,觉得很牛逼的样子, 结果今天就被打脸了。 git pull --rebase1 报错: Cannot rebase: You have unstaged changes Please commit or stash them.12 第一反应是...
git 命令总结
weixin_43845059的博客
08-11 5099
不用每次pull或push 录入用户和密码 首先输入下面这条命令,然后再pull一下录入用户账号和密码,下次就会记录下来不用在再次输入 git config --global credential.helper store 不出现git bash编辑页面命令,以及出现git bash编辑页面的解决方法 禁止出现merge页面方法,git pull时可以加上--rebase参数, 使之不产生Merge点, 保证了代码的整洁, 即: git pull --rebase,但每次都加--reba.
git pull --rebase 用法
hyrylt的博客
08-25 5608
git pull --rebase
git pull --rebase的作用是什么,它与git pull有什么区别?
热门推荐
琅嬛福地
08-23 7万+
在push代码时,会提示使用git pull命令,也就是拉取远端代码,更新我们的仓库,那么为什么又要加个 --rebase命令呢?下面来说说这个问题,先从这两命令开始。 git pull = git fetch + git merge FETCH_HEAD git pull --rebase = git fetch + git rebase FETCH_HEAD 二者的区别是,在fetch之后的操作不同,merge与rebase的不同。 ...
Git-2.30.1-64-bit
11-10
5. 拉取与推送:通过`git pull`和`git push`命令,开发人员可以将本地更改同步到远程仓库,或从远程仓库获取最新的更新。 6. 快照式提交:每次提交都是对项目当前状态的快照,而非增量更改,这使得回溯和比较版本变...
详解git merge 与 git rebase的区别
10-15
与 `git merge` 不同,`git rebase` 是一种“重放”或“平滑”分支历史的方法。在执行 `git rebase` 时,Git 将从共同祖先开始,将一个分支(在这个例子中是 `master`)上的所有更改应用到另一个分支(`develop`)上...
demo-pull-rebase-2
04-18
Prasad Sarode新项目介绍这个例子是为了展示一个git仓库的不同部分以及使用一个Web项目的各种命令目的如上所述,主要目的是为Git培训演示提供简单的示例。部署方式这是一个简单的Web项目,可以在任何Web服务器甚至...
IDEA中使用Git拉取代码时报 Git pull failed原因及解决方法
10-14
在使用IntelliJ IDEA(IDEA)进行Git操作时,可能会遇到“Git pull failed”的问题。这通常是由于本地代码有未提交的改动,且这些改动与远程仓库中的代码存在冲突导致的。Git的设计原则是避免自动合并可能引起冲突的...
gitgit 各种区别记录|pull和--rebase| reset和checkout
bandaoyu的note
11-24 2667
使用下面的关系区别这两个操作: git pull = git fetch +git merge git pull --rebase = git fetch + git rebase git pull = git fetch+ git merge FETCH_HEAD git pull --rebase = git fetch + git rebase FETCH_HEAD 差距就在git fetch之后的操作: 现在来看看git me...
git系列】git-pull 含义用法选项示例详解
wang2leee的博客
02-08 4227
git系列】git-pull 含义用法选项示例详解
git 进阶系列教程--pull
morty
11-28 6983
git pull
git 常用命令总结
weixin_42329676的博客
09-28 1320
git add ‘path' git rm --cached 'path' 与上边add完全相反,删除add后的文件,但在工作空间保留 git rm 'path' 将add后的和工作空间的文件都删掉 git commit -m -a 'msg' git pull: 相当于 git fetch &git merge git pull -r: 相当于 git fetch & git rebase git stash save 'msg': ...
git pull --rebase 详解
changgongcaomu的专栏
05-14 3414
转载:https://www.cnblogs.com/wangiqngpei557/p/6056624.html 有一种场景是经常发生的。 大家都基于develop拉出分支进行并行开发,这里的分支可能是多到数十个。然后彼此在进行自己的逻辑编写,时间可能需要几天或者几周。在这期间你可能需要时不时的需要pull下远程develop分支上的同事的提交。这是个好的习惯,这样下去就可以避免你在一个无用的代码上进行长期的开发,回头来看这些代码不是新的代码。甚至是会面临很多冲突需要解决,而这个时候你可能还需要对冲突的
git pullgit pull --rebase 的区别
03-21
git pullgit pull --rebase都是用于从远程仓库拉取更新到本地仓的命令,它们的区别在于更新代码时的合并策略不同。 1. git pull:执行git pull命令时,默认使用的是合并(merge)策略。即将远程仓库的代码拉取到本地仓库后,会自动进行一次合并操作,将本地仓库中的代码与远程仓库中的代码进行合并。这样会生成一个新的合并提交记录。 2. git pull --rebase:执行git pull --rebase命令时,使用的是变基(rebase)策略。变基操作会将本地仓库中的提交记录暂时保存起来,然后将本地仓库的分支指针移动到远程仓库的最新提交上,然后再将之前保存的提交记录逐个应用到新的位置上。这样可以使得提交历史更加整洁,避免了生成合并提交记录。 总结一下: - git pull使用合并策略,会生成一个新的合并提交记录。 - git pull --rebase使用变基策略,可以使得提交历史更加整洁。
写文章

热门文章

  • Node.js简介 43250
  • c++随机数 35539
  • 无法打开此安装程序包。请确认该程序包存在,并且你有权访问它,或者与应用程序供应商联系,以确认这是一个有效的Windows lnstaller程序包 27239
  • Navicat如何连接本地MySql 16098
  • virtualBox实现windows和Ubuntu之间的复制粘贴 15068

分类专栏

  • COCOS
  • 壹囝臜+ 20篇
  • Nuxt2+Nuxt3 5篇
  • Promise 2篇
  • linux云计算 16篇
  • web 1篇
  • Nitro 1篇
  • WebAPI接口 1篇
  • 3
  • p5.js 2篇
  • SEO优化
  • 计算机网络
  • js库 2篇
  • 计算机硬件
  • canvas 10篇
  • React 14篇
  • vue2+vue3 50篇
  • Typescript 6篇
  • Node.js 27篇
  • ES6 16篇
  • JavaScript高阶 16篇
  • JavaScript 52篇
  • 前端有趣的小案例
  • Angular 4篇
  • Ajax 14篇
  • 配置文件
  • Git 5篇
  • HTML+CSS 38篇
  • jQuery 15篇
  • webpack5 1篇
  • less 2篇
  • Bootstrap 6篇
  • 报错记录 15篇
  • python 18篇
  • Linux-ubuntu 10篇
  • C++ 26篇
  • 软工笔记 7篇
  • ROS 17篇
  • 基础算法 5篇
  • 各种工具(软件)的使用 34篇
  • C的小知识 16篇

最新评论

  • virtualBox安装增强功能及安装过程中出现的一系列问题的解决

    weixin_74029599: 显示bzip2 not found是什么情况

  • IDEA连接远端MySQL数据库

    keep.ac: 你这不就是本地数据库吗?哪里远端了?

  • war包部署到Tomcat上(不用IDE)

    小帅包: 还需要其他步骤吗 我的404

  • 无法打开此安装程序包。请确认该程序包存在,并且你有权访问它,或者与应用程序供应商联系,以确认这是一个有效的Windows lnstaller程序包

    2401_85742448: 虽然开启了此任务但是找不到运行进行安装,可以怎么找到该运行呢

  • 无法打开此安装程序包。请确认该程序包存在,并且你有权访问它,或者与应用程序供应商联系,以确认这是一个有效的Windows lnstaller程序包

    2401_85742448: 您好,我按照步骤启动之后,重启依然会显示无法打开此安装包的弹窗

大家在看

  • 动动手指探索世界,旅游APP如何定制开发?
  • 计算机毕业设计PySpark+Scrapy农产品推荐系统 农产品爬虫 农产品商城 农产品大数据 农产品数据分析可视化 PySpark Hadoop 839
  • Python 基础学习 802
  • nvme id-ctrl 322
  • 工作汇报代写,代写工作汇报基本框架

最新文章

  • ES6中js文件执行顺序
  • chrome插件模拟isTrusted的事件
  • 子组件和父组件的挂载顺序
2024
09月 4篇
07月 1篇
06月 2篇
05月 4篇
04月 3篇
03月 8篇
02月 14篇
01月 7篇
2023年25篇
2022年355篇
2021年37篇
2020年15篇

目录

目录

评论 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 网站制作 网站优化