git的一些使用技巧(git fetch 和 git pull的区别,git merge 和 git rebase的区别)

最近闲来无聊,虽然会使用git操作,但是 git fetchgit pull 的区别,git mergegit rebase的区别只是一知半解,稍微研究一下;

git fetchgit pull 的区别

git fetch

git fetch 是将远程仓库中的改动拉到本地,但是不会主动和本地项目中的代码进行合并,需要你主动操作git merge,然后才能进行合并。

git pull

git pull 其实就等于 git fetch + git merge,它会拉取指定的分支,然后主动和本地当前的分支代码进行合并,如果产生冲突会需要你进行解决。

git mergegit rebase 的区别
git merge

git merge是将远端代码合并到本地,同时会产生一条 merge branch xxx into xxxx 的记录,同时会保留所有的提交细节。

git rebase

git rebase 则是变基,这里我采用git 官方介绍的一个实例来解释;
如下图,当我们新开发的分支 experiment 已经和master有了分叉后,我又不想使用merge的方式,那么就可以采用rebase的方式来处理。在这里插入图片描述
我们使用rebase方式可以将我们的c4提交提取出来,在c3的基础上应用一次。这种方式就叫变基。同样你也可以使用 rebase 命令将提交到某一分支上的所有修改都移至另一分支上。

$ git checkout experiment
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: added staged command

在这里插入图片描述

它的原理是首先找到这两个分支(即当前分支 experiment、变基操作的目标基底分支 master) 的最近共同祖先 C2,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件, 然后将当前分支指向目标基底 C3, 最后以此将之前另存为临时文件的修改依序应用。

其实就是将提交变得更加线性,不会有分叉出现。类似于比较提交的c3和c4后直接将c4提交挂在了c3后同时并没有生成merge操作的那条记录。

建议慎重使用rebase操作,如果其他人和你同时开发一条分支,强烈建议不要使用rebase操作

最近看到克隆代码的时候有这样的一个操作

git clone --depth=1 -branch master http://xxxxxxxx

--depth=1指的是克隆的深度。不会下载 Git 协作的历史记录,这样可以大大加快克隆的速度
depth用于指定克隆深度,为1即表示只克隆最近一次commit
适合用git clone --depth=1的场景:你只是想clone最新版本来使用或学习,而不是参与整个项目的开发工作

如果在历史协作版本中,如果有个人提交了1G的文件,然后又删掉了,那么你完整克隆的时候,这1G的文件也会被下载下来放在git的版本控制中。

假如后面我又想拉取全部的记录和分支怎么办呢?

修改.git/config文件中的
fetch = +refs/heads/master:refs/remotes/origin/master
为
fetch = +refs/heads/*:refs/remotes/origin/*
然后执行git fetch --all

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

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

相关文章

ARM架构(三)——AMBA和总线②

本文参考 ARM文档“Introduction to AMBA AXI4 - Arm Developer” 手册可以在ARM官方文档中下载ARM.con,也可以访问我的百度网盘资源 提取码:1234 目录 1. AXI协议概述1.1 多主系统中的AXI1.2 AXI通道1.3 AXI的主要特点 2. 通道传输和事务( …

基础IO(重定向与缓冲区)

一、重定向 1、stat() 与 read() 函数 (1)stat() 函数 path:文件路径 buf:输出型参数,用于返回文件的各种属性。 函数成功返回 0 ,失败返回 -1 (2)read() 函数 fd:文…

使用minio cllient(mc)完成不同服务器的minio的数据迁移和mc基本操作

minio client 前言使用1.拉取minio client 镜像2.部署mc容器3.添加云存储服务器4.迁移数据1.全量迁移2.只迁移某个桶3.覆盖重名文件 5.其他操作1.列出所有alias、列出列出桶中的文件和目录1.1.列出所有alias1.2.列出桶中的文件和目录 2.创建桶、删除桶2.1.创建桶2.2.删除桶 3.删…

Android APK混淆处理方案分析

这里写目录标题 一、前言1.1 相关工具二、Apk 分析2.1 apk 解压文件2.2 apk 签名信息2.3 apk AndroidManifest.xml2.4 apk code三、Apk 处理3.1 添加垃圾文件3.2 AndroidManifest.xml 处理3.3 dex 混淆处理3.4 zipalign对齐3.5 apk 重新签名3.6 apk 安装测试四、总结一、前言 提…

顺序表和单链表的经典算法题

目录 前言 一、基础思想(数组) 1. 移除元素 2.删除有序元素的重复项 3.合并两个有序数组 二、单链表算法 1.移除链表元素 2.翻转链表 3.合并两个有序的链表 前言 Hello,小伙伴们,今天我们来做一个往期知识的回顾,今天我将…

C++ 设计模式(五)——状态模式

状态模式 序言理解源码 序言 设计模式只是一个抽象的设计模式方法,并不是一个固定使用的搭配,就算是普通switch语句,Map,乃至状态机都是状态模式的其中一种实现方法 状态模式看起来好像和策略模式差不多,主要是其的侧…

【vluhub】log4j注入漏洞 CVE-2021-44228

LOG4介绍 是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布 log4j存在远程代码执行漏洞、受影响版本2.x 部署环境 攻击机环境:192.168.3.180 kail环境:192.168.203.12【NAT…

深入理解 OSPF NSSA “P-bit”

** 注:机翻,未校对。** OSPF NSSA P-bit Explained OSPF Forward Address Filtering OSPF 转发地址过滤 In this lesson we’ll take a closer look at the OSPF NSSA “P-bit”. When we redistribute something into an OSPF NSSA area then these …

数据开发/数仓工程师上手指南(一)数仓概念总览

前言 笔者毕业最开始从事的就是大数据开发和数据仓库建设工作,途中曾担任过人工智能工程师和计算机视觉工程师,没想到最后兜兜转转还是回到了最原本的工作数据开发工程师。但很少有写关于本职工作的技术内容输出。 之前笔者撰文内容大部分都是关于算法…

C++入门基础:C++中的循环语句

循环语句是编程语言中用来重复执行一段代码直到满足特定条件的一种控制结构。它们对于处理需要重复任务的场景非常有用,比如遍历数组、累加数值、重复执行某项操作直到满足条件等。 但是在使用循环语句的时候需要注意下哈,有时候一不小心会构成死循环或者…

Ubuntu上安装anaconda创建虚拟环境(各种踩坑版)

之前都是在Windows桌面版进行深度学习的环境部署及训练,今天尝试了一下在Ubuntu上进行环境部署,踩了不少坑,提供一些解决办法给大家避雷。 目录 一、下载和安装anaconda 1. 下载 2. 安装 二、创建虚拟环境 一、下载和安装anaconda 1. …

uniapp入门超详细教程:如何从零开始搭建项目

目录 一、介绍 二、环境搭建 2.1.需要下载的软件 2.1.1 HBuilderX 2.1.2 下载微信开发者工具 2.2 创建uniapp项目 2.2.1 新建项目 2.2.2 项目基本结构 2.2.3 在微信开发者工具上运行 2.2.4 发布微信小程序 三、pages.json 页面路由 四、组件 4.1 视图容器 4.1.1 v…

RabbitMQ入门详解

前言 本篇文章将详细介绍rabbitmq的基本概念知识,以及rabbitmq各个工作模式在springboot中如何使用。 文章目录 介绍 简介 RabbitMQ 核心 生产者与消费者 Exchange Queue 工作模式 简单模式 工作队列模式 发布订阅模式 路由模式 主题模式 SpringBoot中…

扭蛋机潮玩小程序搭建,扭蛋机行业的创新

在当下潮玩市场中,扭蛋机具有盲盒的未知性和惊喜体验感,商品丰富,并且价格相对低廉,获得了极高的人气。年轻人开始对扭蛋机逐渐“上头”,为了扭到喜欢的商品不断地进行复购下单,在这场随机性的扭蛋游戏中&a…

【故障排查】Docker启动Nacos报错:No DataSource set 问题解决

Nacos报错内容 Nacos Server did not start because dumpservice bean construction failure : No DataSource set原因分析 Nacos 配置的是单机模式,使用mysql 进行存储配置文件,Nacos的启动脚本已经配置了MySQL的连接方式,根据错误提示&a…

Window下安装Zookeeper

一、下载 地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.5.6/ 解压:非中文、没有空格目录下 新建data目录,用于存放数据文件 二、配置 进入conf目录,复制zoo_sample.cfg 为zoo.cfg 打开zoo.cfg 修改dataDir&…

江苏科技大学24计算机考研数据速览,有专硕复试线大幅下降67分!

江苏科技大学(Jiangsu University of Science and Technology),坐落在江苏省镇江市,是江苏省重点建设高校,江苏省人民政府与中国船舶集团有限公司共建高校,国家国防科技工业局与江苏省人民政府共建高校 &am…

层次分析模型

一、算法简介 决策问题:面临多种方案,需要根据一定的标准选择某一种方案 归一化处理(让指标在同一数量级,且保证在同一指标下其差距不变): 给指标加上权重(加权) 科学地设定权重? 二、python…

2. 深度学习的项目流程(批量化打包数据、构建模型、训练模型、波士顿房价预测、激活函数、多层感知机)

深度学习流程 1. 深度学习基本流程1.1 流程图1.2 代码实现1.3 基本概念 2. 深度学习项目流程2.1 批量化打包数据2.2 构建模型2.3 训练模型(1)筹备训练(2)开始训练 2.4 模型推理 3. 深度学习实现波士顿房价预测3.1 数据读取、切分、…

数据库之PHP联动

目录 一、软件安装 二、软件讲解 三、搭配环境 四、编辑软件配置 五、成果展示 如果有人问:为什么非要用xampp、VS code编辑软件?不用phpstudy等其他工具。 那么我只想说:因为xampp、VS code编辑软件免费(ಡωಡ)hiahiahia 一、软件安装 下载连…