Git代码管理工具 — 4 Git分支详解

news2024/9/21 2:34:11

目录

1 Git 分支概念

2 Git 分支基本操作

2.1 git branch查看与创建本地分支

2.2 git checkout切换分支

2.3 git merge合并分支

2.4 删除分支

3 解决冲突


1 Git 分支概念

Git 分支允许你从当前开发线上分离出来,进行独立的开发工作,而不会影响主分支的稳定性,意味着多人协同开发而互不影响。

在开发中,一般有如下分支使用原则与流程:

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

还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等

等。

2 Git 分支基本操作

2.1 git branch查看与创建本地分支

  • 查看分支git branch命令会列出本地仓库的所有分支,当前分支前面会有一个星号 (*) 标记。

git branch

  • 创建分支:创建一个新分支,但不会自动切换到该分支。

git branch <branch-name>

查看与创建本地分支: 

2.2 git checkout切换分支

  • 切换分支: 切换到已存在的分支,如果分支不存在,Git会报错。

git checkout <branch-name>

  • 创建并切换分支: 创建一个新的分支并立即切换到该分支:

git checkout -b <new-branch-name>

  • 切换到最新的提交: 如果你想要切换到最新的提交,可以使用:

git checkout HEAD

  • 切换到上一个分支: 如果你想要切换回上一个使用的分支,可以使用:命令

git checkout -

git checkout <branch-name>命令由master分支切换到新建的dev01分支:

2.3 git merge合并分支

git merge 命令用于将两个分支的更改合并在一起,通常会将其他分支的更改合并回主分支(通常是 master )。

以下是一些 git merge 的常用用法:

  • 合并指定分支到当前分支: 在执行 git merge 之前,你需要切换到你想要更新的分支。比如,如果你想要更新主分支,你应该先切换到主分支:

先切换到主分支

git checkout master

然后其他分支合并进master分支

git merge feature-branch

  • 合并所有最新分支到当前分支: 如果你想要合并所有分支的最新更改到当前分支,可以使用:

git merge --octopus

  • 合并并关闭分支: 如果你想要合并一个分支并且删除它,可以使用 --squash 选项将所有更改合并为一个单一的提交:

git merge --squash feature-branch

使用git merge feature-branch命令将dev01分支合并到master分支,其中(HEAD -> master, dev01) 具体含义如下:

  • HEAD:HEAD是一个指针, 表示当前Git正在指向的提交对象

  • -> master: 这个箭头表示HEAD当前指向的是master分支。

  • dev01:进行合并操作后,将dev01分支的更改合并到了master分支。

2.4 删除分支

git branch -d 是Git命令的一个选项,用于删除已经完全合并的本地分支,这里的 -d 代表 --merged

  • 删除已合并分支:这个命令会删除名为 <branch-name> 的分支,前提是这个分支上的所有更改都已经合并到了当前分支。

git branch -d <branch-name>

  • 强制删除分支: 如果你想要删除一个分支,不管它是否已经完全合并,可以使用 -D 选项,它是 --delete --force 的简写:

git branch -D <branch-name>

使用git branch -d <branch-name>命令输出已经合并的dev01分支。

3 解决冲突

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:

1)尝试合并: 当你尝试合并两个分支,如果存在冲突,Git会停止合并过程并告诉你哪些文件存在冲突。

2)查找冲突文件: 使用以下命令找出存在冲突的文件:

git status

3)手动解决冲突: 打开存在冲突的文件,Git会在冲突区域插入特殊的标记,需要手动编辑文件,决定保留哪个版本的文本,或者可能需要结合两个版本的内容。

4)将解决完冲突的文件加入暂存区: 使用以下命令将解决冲突后的文件添加到暂存区:

git add <解决冲突后的文件>

5)提交到仓库: 一旦解决了所有冲突,并且将更改的文件加入到暂存区,可以进行一次新的提交来完成合并过程:

git commit

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

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

相关文章

用 AI 写歌词,让音乐表达与众不同

在音乐的广袤天地中&#xff0c;我们都渴望通过独特的表达来触动人心&#xff0c;展现自我。而如今&#xff0c;AI 技术的崛起为音乐创作带来了全新的突破&#xff0c;让我们能够以一种前所未有的方式赋予音乐独特的灵魂。 “妙笔生词智能写歌词软件&#xff08;veve522&#…

Window10下安装WSL-Ubuntu20.04

1.开启并更新WSL 1.1开启WSL 首先先来看一下电脑是否能够开启WSL:待补充... 然后再来看一下如何开启WSL:win->设置->应用->应用和功能->程序和功能&#xff0c;如下所示&#xff1a; 最后选择启用或关闭Windows功能&#xff0c;开启两个选项&#xff1a;1.Hyper-V…

大语言模型诞生过程剖析

过程图如下 &#x1f4da; 第一步&#xff1a;海量文本的无监督学习 得到基座大模型&#x1f389; &#x1f50d; 原料&#xff1a;首先&#xff0c;我们需要海量的文本数据&#xff0c;这些数据可以来自互联网上的各种语料库&#xff0c;包括书籍、新闻、科学论文、社交媒体帖…

K8S系列-Kubernetes基本概念及Pod、Deployment、Service的使用

一、Kubernetes 的基本概念和术语 一、资源对象 ​ Kubernetes 的基本概念和术语大多是围绕资源对象 Resource Object 来说的&#xff0c;而资源对象在总体上可分为以下两类: 1、某种资源的对象 ​ 例如节点 Node) Pod 服务 (Service) 、存储卷 (Volume&#xff09;。 2、…

记录些Redis题集(4)

Redis 通讯协议(RESP) Redis 通讯协议&#xff08;Redis Serialization Protocol&#xff0c;RESP&#xff09;是 Redis 服务端与客户端之间进行通信的协议。它是一种二进制安全的文本协议&#xff0c;设计简洁且易于实现。RESP 主要用于支持客户端和服务器之间的请求响应交互…

Adminer-CVE-2021-21311

在其4.0.0到4.7.9版本之间&#xff0c;连接 ElasticSearch 和 ClickHouse 数据库时存在一处服务端请求伪造漏洞&#xff08;SSRF&#xff09;。 VPS开启HTTP服务 VPS 开启HTTP 再同时跑POC 确保能访问poc里的链接文件 第一是目标地址 第二个是跳转地址 第三个是监听地址 如果…

昇思25天学习打卡营第21天|DCGAN生成漫画头像

DCGAN原理 DCGAN&#xff08;深度卷积对抗生成网络&#xff0c;Deep Convolutional Generative Adversarial Networks&#xff09;是GAN的直接扩展。不同之处在于&#xff0c;DCGAN会分别在判别器和生成器中使用卷积和转置卷积层。 它最早由Radford等人在论文Unsupervised Re…

【软件建模与设计】-03-软件生存周期模型和过程

目录 1、瀑布模型 2、抛弃型原型 3、演化式-增量模型 4、螺旋模型 5、统一软件开发过程RUP 6、设计验证和确认 6.1、软件质量保证 6.2、软件设计的性能分析 7、软件生存周期的活动 7.1、需求分析和规约 7.2、体系结构设计 7.3、详细设计 7.4、编码 8、软件测试 …

element-ui 插槽自定义样式怎么居中

场景&#xff1a;使用element-ui组件&#xff0c;scope内部自定义样式导致的错位 效果图&#xff1a; 解决思路&#xff1a; template标签可理解为一个内嵌组件&#xff0c;宽高重新定义&#xff0c;可在自定义内容外层套一层盒子&#xff0c;让盒子占满所有空间&#xff0c;再…

DBA 数据库管理 表管理 数据批量处理。表头约束

表管理 建库 库名命名规则&#xff1a;仅可以使用数字、字母、下划线、不能纯数字 不可使用MySQL命令或特殊字符 库名区分字母大小写 加if not exists 命令避免重名报错 create database if not exists gamedb; 建表 drop database if exists gamedb ; 删表…

从JDK源码探究Java线程与操作系统的交互

文章目录 从JDK源码探究Java线程与操作系统的交互一、序言二、线程基础概念1、操作系统线程实现方式&#xff08;1&#xff09;内核级线程&#xff08;Kernel-Level Thread&#xff09;&#xff08;2&#xff09;用户级线程&#xff08;User-Level Thread&#xff09;&#xff…

【DevOps系列】DevOps简介及基础环境安装

作者&#xff1a;后端小肥肠 目录 1. 前言 2. DevOps&#xff08;详细介绍&#xff09; 3. Code阶段工具 3.1 Git安装 3.2 GitLab安装 4. Build阶段工具 5. Operate阶段工具 5.1 Docker安装 5.2 Docker-Compose安装 6. Integrate工具 6.1 Jenkins介绍 6.2 Jenkins安…

8-1 搭建solidity开发环境,自己定制一个truffle

8-1 搭建solidity开发环境&#xff0c;自己定制一个truffle&#xff08;react区块链实战&#xff09; 从零开始搭建一个项目 自己实现一套类似truffle的自动编译系统&#xff0c;加深理解 此处可以跳过无需自己实现编译合约的模块&#xff0c;使用已有的truffle模块即可 项目…

SSM框架学习笔记(仅供参考)

&#xff08;当前笔记简陋&#xff0c;仅供参考&#xff09; 第一节课&#xff1a; &#xff08;1&#xff09;讲述了Spring框架&#xff0c;常用jar包&#xff0c;以及框架中各个文件的作用 &#xff08;2&#xff09;演示了一个入门程序 &#xff08;3&#xff09;解释了…

TS 入门(二):Typescript类型与类型注解

目录 前言回顾1. 基本类型数字类型 (number)字符串类型 (string)布尔类型 (boolean)空值和未定义 (null 和 undefined)任意类型 (any)unknown 类型any 与 unkown 区别 2. 数组和元组类型数组类型元组类型 3. 枚举类型4. 类型注解示例指定变量类型函数参数和返回值类型注解类型推…

在浏览器控制台中输出js对象,为什么颜色不同,有深有浅

打开console&#xff0c;输入自定义的javascript对象的时候&#xff0c;打开看发现对象的属性是深紫色&#xff0c;后面有一些对象是浅紫色的&#xff0c;比如Array对象和一堆SVG,HTML,CSS开头的对象&#xff0c;常用的prototype和__proto__也是浅紫色的。 请问这里深紫和浅紫…

9. Python3 Numpy科学计算库

Numpy是Python科学计算库的基础&#xff0c;主要包括&#xff1a; 强大的N维数组对象和向量运算。一些复杂的功能。与C和FORTRAN代码的集成。实用的线性代数运算、傅里叶变换、随机数生成等。 9.1 Numpy基础 Numpy的主要对象是一个均匀的多维数组。Numpy提供了各种函数。可以…

pxe高效网络批量装机

文章目录 一&#xff0c; PXE远程安装服务&#xff08;一&#xff09;三种系统装机的方式&#xff08;二&#xff09;linux装机1. 加载 Boot Loader2. 加载启动安装菜单3. 加载内核和 initrd4. 加载根文件系统5. 运行 Anaconda 安装向导 &#xff08;三&#xff09;实现过程&am…

STM32使用CubeMX创建HAL库工程文件

文章目录 1. STM32CubeMX 2. 界面介绍 3. 使用教程 新建工程 选择芯片界面 ​编辑 配置页面 引脚配置页面 引脚配置界面的颜色指示 配置RCC时钟参数 配置SYS参数 配置时钟树 Project Manager项目管理配置 生成工程文件 KEIL代码编写 1. STM32CubeMX STM32CubeM…

得物六宫格验证码分析

声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 前言(lianxi a…