Git学习笔记(三)Git分支

        Git分支是Git中非常重要的一个概念,无论是个人开发还是多人协作中,分支都起着至关重要的作用。几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离 开来进行重大的Bug修改、开发新的功能,以免影响开发主线。

概念

        Git的分支可以被看作是项目历史的一个快照或者说是一个指针,它指向你所做的提交。当你创建一个新的分支时,Git会创建一个新的指针供你移动。当你进行提交操作时,这个分支指针就会向前移动。

这样理解可能把它想象成“鸣人的多重影分身之术”,相当于在当前状态,创建出一个一模一样的自己。比如现在我觉得我学习的效率太低了,我创建出三个分身分别去做其他的事情A学数学,B学语文,C学英语。等到他们学习完了,我再把ABC三个分身收回来,这样他们学习到的知识就整合到我的脑子里了。而这种方式在我们协作开发的过程中经常使用,每个人负责一个功能模块,完成后将我们做好的功能模块合并到主分支中。

操作

Git分支常用的几种操作包括:

  1. 创建分支
    git branch 分支名称
  2. 查看分支
    git branch
  3. 切换分支
    git checkout 分支名称

    git checkout  -b 分支名称:可以创建一个分支,并且直接切换到这个分支。
  4. 合并分支
    先切换到你要合并到的那个分支,然后在给分支下输入指令git merge 分支名称

    上图中HEAD箭头指向的表示当前分支,可以看到在合并分支之前,master分支中只有一次提交file01.txt记录,而dev分支中则包括了file01.txt和file02.txt文件的提交记录。再将dev分支合并到master之后,他们两个的内容就保持一致了,包括提交记录也是一样的。
    (注:这里的git-log命令是我设置的别名,用来查看日志的,至于设置别名的方式可以参考我前一篇文章的内容)
  5. 分支冲突
    我们同时在master分支和dev分支修改同一个文件的内容,并且修改的内容不一样,就会出现分支冲突,这就好像上面分身的例子中,我派遣A去学数学,B也去学数学,结果他们两学到的知识不一样,这个时候就会存在冲突,需要我们自己手动的再去判断到底谁是对的。



    这个时候我们通过git-log命令查看分支情况,可以看到再add file02.txt之后,出现了分岔路口,这表明两个分支出现了不一样的操作,mastter分支的操作是master = 1,dev分支的操作是dev=2。此时我们使用git merge命令会出现下图情况:

    这句话就是再提示我们,合并过程中存在冲突,让我们解决冲突后重新提交。此是我们看看冲突文件 file01.txt的内容如下:

    文件中通过等于号将冲突内容分隔开,上半部分表示当前分支的内容,下半部分表示dev分支的内容。解决冲突的方式也很简单粗暴,直接把这个文件改成你想要的样子,然后重新提交一遍即可:
  6. 删除分支
    git branch -d 分支名称:检查删除(检查当前分支是不是还存在有用的东西没有合并到其他分支,或者有记录没有提交等等。如果都没有就删除)
    git branch -D 分支名称:强制删除,不做检查。

几条常用原则

  • master (生产) 分支 线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
  • develop(开发)分支 是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线 要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。
  • feature/xxxx分支 从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。
  • hotfix/xxxx分支, 从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、 develop分支。
  • 还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等 等。

以上就是分支的一些常见概念以及基本操作, 经过前面几篇文章,以及本章节的介绍,在本地仓库使用Git来管理代码已经没有什么问题了,后续文章会继续介绍如何创建远程仓库,以及如何在IDEA中使用Git。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Discuz! X3.4 升级至 Discuz! X3.5 详细教程

第一步:从其他以前的 Discuz! X 版本升级Discuz! X3.4 请先升级到Discuz! X3.4,升级教程网上比较普遍,在此不再论述。 第二步:Discuz! X3.4 升级至 Discuz! X3.5 (Discuz 从 X3.5 以后,不在发布GBK版本&…

K8S基础概念

一、MASTER Kubernetes里的Master指的是集群控制节点,在每个Kubernetes集群里都需要有一个Master来负责整个集 群的管理和控制,基本上 Kubernetes的所有控制命令都发给它,它负责具体的执行过程,我们后 面执行的所有命 令基本都…

测试数据整理--chatgpt 构造sql语句导出数据库数据

在测试过程中,我们有时候需要准备一些测试数据,若从系统中直接导出Excel数据,数据往往庞大且需要整合,不好整理,于是我们直接去数据库中查询一些表,数据整合后直接导出结果会更方便。 我们今天就 用 chatg…

云原生Kubernetes: K8S 1.29版本 部署Jenkins

目录 一、实验 1.环境 2.K8S 1.29版本 部署Jenkins 服务 3.jenkins安装Kubernetes插件 二、问题 1.创建pod失败 2.journalctl如何查看日志信息 2.容器内如何查询jenkins初始密码 3.jenkins离线安装中文包报错 4.jenkins插件报错 一、实验 1.环境 (1&…

npm最新淘宝镜像站已经更新registry(2024-04-19)

1、npm替换地址 旧的 https://registry.npm.taobao.org 已替换为 https://registry.npmmirror.com 淘宝镜像的淘宝官方提供的方法(最新的源配置) npm config set registry https://registry.npmmirror.com 镜像站网址: npmm…

ELK日志采集系统

1.什么是ELK ELK 是一套流行的数据搜索、分析和可视化解决方案,由三个开源项目组成,每个项目的首字母合起来形成了“ELK”这一术语: Elasticsearch (ES): Elasticsearch 是一个基于 Apache Lucene 构建的分布式、实时搜索与分析引擎。它能够…

小程序AI智能名片S2B2C商城系统:做内容、造IP、玩社群打造私域流量的新营销秘籍

在数字化浪潮汹涌的新时代,小程序AI智能名片S2B2C商城系统正以其独特的魅力,引领着营销领域的新变革。这套系统不仅将人工智能与小程序技术完美结合,更通过创新的S2B2C模式,为企业打开了一扇通往成功的大门。 面对激烈的市场竞争&…

Jenkins 的构建时执行时间问题

我们希望我的项目能够在特定的时间自动执行,我们需要设定一个定时任务。 Jenkins 的定时任务是通过 Cron 任务来实现的,但是由有点不一样。 H/2 * * * * 比如说上面的设置就是每 2 分钟执行一次。 希望每分钟执行一次 Jenkins 的每分钟执行一次的设置…

c++头文件string函数的用法

目录 前言: 字符串截取 字符串插入与替换 字符串区间删除 字符串排序与相加和查找 如后续需文字描述,,请评论区告诉我,我看到后会进行添加一些文字描述。 前言: 因本人女朋友在学习c过程中在一些知识网页上学了st…

uni-app中页面生命周期与vue生命周期的执行顺序对比

应用生命周期 uni-app 支持如下应用生命周期函数: 函数名说明平台兼容onLaunch当uni-app 初始化完成时触发(全局只触发一次),参数为应用启动参数,同 uni.getLaunchOptionsSync 的返回值onShow当 uni-app 启动&#x…

09 MySQL--操作真题

1. 用一条 SQL 语句&#xff0c;查询出每门课程都大于 80 分的人。 分析&#xff1a; 去重查询出存在课程小于 80 分的人&#xff0c;设为集合A查询不在集合 A 中的人 # 第一步&#xff1a;找小于等于80分的学员姓名 select distinct name from t_student where fenshu <…

跨境电商指南:防关联浏览器和云主机有什么区别?

跨境电商的卖家分为独立站卖家和平台卖家。前者会自己开设独立站点&#xff0c;比如通过 shopify&#xff1b;后者则是入驻亚马逊或 Tiktok 等平台&#xff0c;开设商铺。其中平台卖家为了扩大收益&#xff0c;往往不止开一个店铺&#xff0c;或者有店铺代运营的供应商&#xf…

记一次中间件宕机以后持续请求导致应用OOM的排查思路(server.max-http-header-size属性配置不当的严重后果)

一、背景 最近有一次在系统并发比较高的时候&#xff0c;数据库突然发生了故障&#xff0c;导致大量请求失败&#xff0c;在数据库宕机不久&#xff0c;通过应用日志可以看到系统发生了OOM。 二、排查 初次看到这个现象的时候&#xff0c;我还是有点懵逼的&#xff0c;数据库…

解决方案ImportError: cannot import name ‘BertTokenizerFast‘ from ‘transformers‘

文章目录 一、现象二、解决方案 一、现象 从transformers 库调用该包的时候 from transformers import BertTokenizer, AdamW, BertTokenizerFast报错显示 ImportError: cannot import name ‘BertTokenizerFast’ from ‘transformers’ 二、解决方案 追溯查看transforme…

人工智能论文GPT-3(1):2020.5 Language Models are Few-Shot Learners;摘要;引言;scaling-law

摘要 近期的工作表明&#xff0c;在大量文本语料库上进行预训练&#xff0c;然后针对特定任务进行微调&#xff0c;可以在许多NLP任务和基准测试中取得实质性进展。虽然这种方法在架构上通常是与任务无关的&#xff0c;但仍然需要包含数千或数万示例的针对特定任务的微调数据集…

【解决】Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed

问题原因&#xff1a; 在Java8及高版本以上的版本在源应用程序不信任目标应用程序的证书&#xff0c;因为在源应用程序的JVM信任库中找不到该证书或证书链。也就是目标站点启用了HTTPS 而缺少安全证书时出现的异常 解决方案&#xff1a; 我使用的是忽略证书验证 public clas…

面试算法-173-二叉树的直径

题目 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,4,…

水电预付费系统多少钱?

一、水电预付费系统的定义与优势 水电预付费系统是一种现代化的管理方式&#xff0c;它颠覆了传统的后付费模式&#xff0c;让用户在使用水电前先进行支付。这种系统通常包括智能电表、充值终端、后台管理系统等组成部分&#xff0c;通过自动化处理&#xff0c;实现费用的预先…

MATLAB实现蚁群算法优化柔性车间调度(ACO-fjsp)

蚁群算法优化车间调度的步骤可以分为以下几个主要阶段&#xff1a; 1.初始化阶段&#xff1a; 设置算法参数&#xff0c;如信息素浓度、启发式因子等。这些参数将影响蚂蚁在选择路径时的决策过程。 确定车间调度的具体问题规模&#xff0c;包括工件数量、机器数量以及每个工件…

通过Docker新建并使用MySQL数据库

1. 安装Docker 确保您的系统上已经安装了Docker。可以通过以下命令检查Docker是否安装并运行&#xff1a; systemctl status docker如果没有安装或运行&#xff0c;请按照官方文档进行安装和启动。 2. 拉取MySQL镜像 从Docker Hub拉取MySQL官方镜像。这里以MySQL 5.7版本为…