Git->git pull 和 git pull --rebase的详解

Git拉取代码的坑

  • 格式:git xx指令 origin/远程仓库分支名称
  • 假如本地仓库和远程仓库都是空的
    • 本地仓库向远程仓库提交一个文件
      • git commit -a -m "local first commit"-a暂存修改文件到暂存区,准备本地提交。-m表示提交信息
      • git push origin refs/heads/master:将本地master分支的最新本地提交(refs/heads/master)推送到远程仓库origin的同名分支
        在这里插入图片描述
  • 本地仓库分支记录
    在这里插入图片描述
  • 远程仓库分支记录
    在这里插入图片描述

git fetch

从远程仓库获取本地仓库所有尚未拥有的版本更新,只是获取,不会进行远程仓库和本地仓库的代码合并和代码变基,需要手动进行代码合并git merge origin/master代码变基git rebase origin/master`

  • 远程仓库有一笔新的远程提交,本地仓库并没有办法感知
    在这里插入图片描述
  • 本地仓库使用git fetch查看远程仓库最新的代码提交
    • 本地仓库分支记录
      在这里插入图片描述
    • 远程仓库分支记录
      在这里插入图片描述

git merge origin/master

  • 假如本地仓库没有本地提交,本地仓库使用git merge origin/master手动合并刚才git fetch获取到远程仓库的代码更新。此时本地仓库和远程仓库的代码一致
    在这里插入图片描述
    • 本地仓库分支记录
      在这里插入图片描述
    • 远程仓库分支记录
      在这里插入图片描述
  • 假如本地仓库有本地提交,本地仓库使用git merge origin/master手动合并刚才git fetch获取到远程仓库的代码更新,需要在本地仓库解决冲突的代码文件
    • 本地仓库做一些修改并本地提交git commit -a -m "local second commit",但还没有推送到远程仓库
      在这里插入图片描述
    • 远程仓库做一些修改并远程提交
      在这里插入图片描述
    • 本地仓库使用git fetch查看远程仓库最新的代码提交
      • 本地仓库分支记录 在这里插入图片描述
      • 远程仓库分支记录在这里插入图片描述
    • git merge origin/master手动合并刚才git fetch获取到远程仓库的代码更新,需要本地解决冲突
      在这里插入图片描述
    • 冲突解决完成后,提交到本地仓库git commit -a -m "merge local origin commit",再推送到远程仓库git push origin refs/heads/master,本地仓库和远程仓库的代码才会一致,git merge方式会造成代码提交的分叉和合并
    • 本地分支记录
      在这里插入图片描述
    • 远程分支记录
      在这里插入图片描述

git rebase origin/master

  • 假如本地仓库没有本地修改和本地提交,本地仓库使用git rebase origin/master手动变基刚才git fetch获取到远程仓库的代码更新,此时本地仓库和远程仓库的代码一致
  • 远程仓库有一笔新的远程提交,本地仓库并没有办法感知
    在这里插入图片描述
    • 本地分支记录
      在这里插入图片描述
    • 远程分支记录
      在这里插入图片描述
  • 假如本地仓库有本地提交,本地仓库使用git rebase origin/master手动合并刚才git fetch获取到远程仓库的代码更新,需要在本地仓库解决冲突的代码文件
    • 本地仓库做一些修改并本地提交git commit -a -m "local thid commit",但还没有推送到远程仓库
      在这里插入图片描述
    • 远程仓库做一些修改并远程提交
      在这里插入图片描述
    • 本地仓库使用git fetch查看远程仓库最新的代码提交
      • 本地仓库分支记录
        在这里插入图片描述

      • 远程仓库分支记录
        在这里插入图片描述

    • git rebase origin/master手动合并刚才git fetch获取到远程仓库的代码更新,需要本地解决冲突
      在这里插入图片描述
    • 冲突解决完成后,提交到本地仓库的暂存区git add hello.txt,再使用git rebase --continue执行之前被冲突打断的rebase操作,git会自动创建一个线性提交,不会像git merge那样的分叉和合并
      在这里插入图片描述

总结

  • git fetch:从远程仓库获取最新的代码更新,但是不会自动合并或修改你的本地仓库代码
  • git merge:合并两个分支代码,会出现代码提交的分叉和合并,非线性合并
  • git rebase:合并两个分支代码,不会出现代码提交的分叉和合并,线性合并
  • git pullgit fetch + get merge的组合,用远程仓库代码更新本地仓库的代码,非线性合并
  • git pull --rebasegit fetch + get rebase的组合,用远程仓库代码更新本地仓库的代码,线性合并

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/861088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常微分方程算法之编程示例五(阿当姆斯法)

目录 一、研究问题 二、C代码 三、计算结果 一、研究问题 本节我们采用阿当姆斯法(Adams法)求解算例。 阿当姆斯法的原理及推导请参考: 常微分方程算法之阿当姆斯法(Adams法)_四步四阶adams显格式;三步四阶adams隐…

云计算运维工程师面试

1. 云计算运维工程师的角色和职责是什么? 回答: 云计算运维工程师负责确保云计算环境(包括硬件和软件系统)的高可用性和稳定性。他们的主要职责包括: 监测系统和应用程序的性能,确保它们正常运行。故障排除,快速响应并解决系统或应用程序中出现的问题。容量规划,根据…

10.二次开发——黑马程序员Java最新AI+若依框架项目

目录 前言零、使用若依修改器修改项目名称一、创建sky-merchant模块1.创建模块2. 在新模块中导入依赖3. 父工程锁定版本4. sky-admin 导入依赖 二、菜品管理页面生成1.根据页面原型,确定表信息2.设计表3使用代码生成器生成页面4,下载tb_dish代码并分别导…

Matlab|【免费】含氢气氨气综合能源系统优化调度

目录 主要内容 部分代码 结果一览 下载链接 主要内容 该程序参考《_基于氨储能技术的电转氨耦合风–光–火综合能源系统双层优化调度》模型,对制氨工厂、风力发电、电制氢、燃气轮机、火电机组等主体进行建模分析,以火电机组启停成本、煤耗…

VS Code修改菜单栏字体大小

修改方法 打开VS Code,快捷键 CtrlShiftP,在弹出的输入框中输入 setting,找到带有JSON的一项,如图所示: 原文链接 window.zoomLevel 前后变化 终端字体大小 File -> Preferences -> Settings -> Features…

用Hugging Face Transformers,高效部署:多显卡量化感知训练并转换为ONNX格式的多标签分类模型

文章目录 环境准备数据准备数据集定义模型定义多显卡训练模型保存与 ONNX 转换验证 ONNX 模型部署到移动设备 要在多显卡上进行量化感知训练(QAT),然后将量化后的模型转换为 ONNX 格式并部署到移动设备,可以按照以下步骤进行&…

mysql数据库SQL语句大全详解(下)

六、事务管理 1、开始事务 START TRANSACTION;2、提交事务 COMMIT;3、回滚事务 ROLLBACK;4、保存点 设置保存点: SAVEPOINT savepoint_name;回滚到保存点: ROLLBACK TO SAVEPOINT savepoint_name;七、视图 1、创建视图 CREATE VIEW view_name A…

昇思25天学习打卡营第3天|数据集 Dataset

文章目录 要训练AI,大量的数据是基础。就像我们人去学习写作文一样,得先有大量的输入,然后才能有一个不错的输出。AI也一样,需要喂大量的数据以后,才可能有一个不错的预测。 我们产生的数据多种多样 乱七八糟。但计算…

海外短剧系统:一扇窥探多元文化的奇妙之窗

随着全球化的推进,文化交流的壁垒逐渐消融,我们得以更加便捷地领略到世界各地的独特风情。在这一背景下,海外短剧系统应运而生,它如同一扇扇虚拟的窗户,将我们带入不同国家、不同民族、不同文化的世界,让我…

Spark算法之ALS模型(附Scala代码)

Spark算法之ALS模型(附Scala代码) 在大数据时代,个性化推荐系统已成为连接用户与信息的桥梁,而算法则是构建这一桥梁的基石。Apache Spark,作为一款强大的分布式计算系统,提供了丰富的机器学习库&#xff…

比特币生态系统的现状与流动性提升的新路径

自2009年中本聪发布比特币白皮书以来,比特币一直被誉为“数字黄金”,在加密货币领域占据着不可动摇的地位。其去中心化、稀缺性和安全性,增强了其作为长期价值储存工具的吸引力。 相比之下,以太坊自2015年问世以来,凭…

超低排放标准

据朗观视觉小编了解发现,超低排放标准作为衡量一个行业或企业环保水平的重要指标,越来越受到社会各界的关注。本文将深入探讨超低排放标准的内涵、实施意义以及未来展望。 一、超低排放标准的定义 超低排放标准,是指在特定工业生产过程中&am…

electron的托盘Tray

1.在主进程文件background.js中引入需要的文件 import { Tray, Menu } from "electron"; const path require("path");2.获取托盘图标 const baseSRC process.cwd(); //这里不能使用__dirname,使用dirname会直接获取dist_electron中的文件,…

视频共享融合赋能平台LntonCVS统一视频接入平台数字化升级医疗体系

医疗健康事关国计民生,然而,当前我国医疗水平的地区发展不平衡、医疗资源分布不均和医疗信息系统老化等问题,制约了整体服务能力和水平的提升。视频融合云平台作为推动数字医疗的关键工具,在医疗领域的广泛应用和普及,…

Oracle - 数据库打补丁实践

原文:https://www.cnblogs.com/ddzj01/p/12097467.html 一、概述 本文将介绍如何给oracle数据库打最新补丁,数据库版本为11.2.0.4单实例,操作系统为redhat6.5 二、下载相关升级包 1. 登录MOS,查阅(ID 2118136.2),下载…

vue3中引入echarts图表

1.下载echarts npm install echarts 2.在使用的页面引入echarts // 按需引入 echarts import * as echarts from "echarts"; 3.准备dom节点 <div id"chartLine"></div> 4.将数据渲染到dom节点 import { ref, onMounted, markRaw } from "…

如何快速把一篇文章或企业介绍变为视频?

随着科技和数字化的不断发展&#xff0c;企业的营销手段也在不断变革。尤其对于产品宣传来说&#xff0c;用生动的视觉语言直观地展示产品特点和优势&#xff0c;能够彰显企业实力&#xff0c;让社会不同层面的人士对企业产生正面、良好的印象&#xff0c;从而建立对该企业的好…

2024.06.18【读书笔记】丨生物信息学与功能基因组学(第十五章 真菌基因组 第二部分)【AI测试版】

读书笔记&#xff1a;《生物信息学与功能基因组学》第十五章 - 第二部分 摘要 本部分深入探讨了真菌基因组的生物信息学分析&#xff0c;包括基因组测序策略、基因识别与功能注释&#xff0c;以及基因组复制对真菌进化的影响。此外&#xff0c;还讨论了功能基因组学方法在真菌…

开发技术-Java集合(List)删除元素的几种方式

文章目录 1. 错误的删除2. 正确的方法2.1 倒叙删除2.2 迭代器删除2.3 removeAll() 删除2.4 removeIf() 最简单的删除 3. 总结 1. 错误的删除 在写代码时&#xff0c;想将其中的一个元素删除&#xff0c;就遍历了 list &#xff0c;使用了 remove()&#xff0c;发现效果并不是想…

打破僵局:Foxit Reader无法打开的终极解决方案

打破僵局&#xff1a;Foxit Reader无法打开的终极解决方案 在数字化阅读时代&#xff0c;Foxit Reader作为一款广受欢迎的PDF阅读器&#xff0c;其打不开的问题无疑会给用户带来诸多不便。本文将为您提供全面的解决方案&#xff0c;从基础检查到高级技巧&#xff0c;确保您能够…