GIT分支管理(随笔)

news2025/2/21 19:41:48

目录

前言

一、概念原理

1、分支

2、原理

说明1:

说明2:

二、分支操作

 1、查看分支

2、创建分支

3、切换分支

4、删除分支

5、合并分支

6、合并冲突

7、重命名分支

8、编制分支的介绍

三、标签

1、概念

2、操作

总结


前言

分支,另外在开一条线路,不影响主分支,主分支继续干自己的事情,分支可以辅助干点别的事情;使用不同的分支,并行的实现相关的操作,最后把分支操作合并到主分支中,在Git中,初始化仓库时,Git系统会默认分配一个主分支,名称为:master(可配置修改-main);

一、概念原理

1、分支

  • 基于某个分支,另外开启的一条新的线路
    • 不影响不破坏主分支 
    • 使用不同的分支,并行的实现相关的操作,最后把分支操作合并到主分支中
  • 在Git中,初始化仓库时,Git系统会默认分配一个主分支,名称为:master(可配置修改-main)

2、原理

每一次版本提交时,Git仓库会创建以以下三类对象进行存储:

  • blob 对象:保存着文件快照,有多少个文件就有多少个 blob对象
  • 对象 :记录着目录结构和 blob 对象索引
  • 提交 对象:包含着指向前述树对象的指针和所有提交信息

# 操作一:创建以下三个文件,提交版本
$ touch README test.rb LICENSE
$ git add .
$ git commit -m 'The initial commit of my project'

# 结果:一个提交对象、一个树对象、三个blob对象

# 操作二:继续做两个版本的提交
$ touch 1.txt
$ git add .
$ git commit -m '1.txt'


$ touch 2.txt
$ git add .
$ git commit -m '2.txt'

说明1:

  • 图中只画了提交对象,省略了树对象和blob对象
  • 各个提交对象串联起来,形成的线路我们称之为分支
    • 默认只有一条分支,称之为主分支,名称为master
  • 每次提交对象都会指向上一次提交对象的指针
    • 第一个版本的提交没有上一次提交对象

HEAD:特殊的指针

说明2:

  • v1.0是标签
  • master是默认分支,它是一个是一个特殊的指针,指向默认分支的最后提交对象
  • HEAD也是一个特殊的指针,它指向当前分支。也就是说,我们可以理解为,它是当前指针的别名。

二、分支操作

 1、查看分支

# 查看
$ git branch

# 查看所有的分支和远程分支
$ git branch -a

# 查看各个分支当前所指的对象
$ git log --oneline --decorate

2、创建分支

# 创建一个新的分支: git branch <分支名称>
$ git branch testing


# 创建分支的同时,切换分支: git checkout -b 分支名称
$ git checkout -b feature_login

3、切换分支

# 语法一: git checkout <分支名称>
$ git checkout testing

# 语法二: git switch <分支名称>
$ git switch testing

4、删除分支

# 删除一个分支:git branch -d <分支名称>
$ git branch -d testing

5、合并分支

# 合并分支:git merge <分支名称>
$ git merge testing

6、合并冲突

Administrator@SIT-20210425BZM MINGW64 /e/S3/04-git/bt (main|MERGING)
$ cat 1.txt
<<<<<<< HEAD
好好学习
=======
好好学习----
宝宝巴士
学习好好
>>>>>>> testing

7、重命名分支

# 重命名分支
# git branch -m <旧名称> <新名称>
$ git branch -m main master

8、编制分支的介绍

# 编辑分支的介绍 git branch 分支名称 --edit-description
$ git branch myBranchName --edit-description

三、标签

1、概念

本质是某一个版本提交的别名,便于理解、软件发布,它是软件中的某个里程碑

2、操作

1)查看标签

$ git tag
$ git tag -l
$ git tag --list

2)创建标签

  • 轻量标签:某一个版本提交的别名
  • 附注标签 :标签描述、打标签者的名字、电子邮件地址、日期时间...

2.1)基于当前版本创建标签

# 创建轻量标签 : git tag 名称
git tag v1.0


# 创建附注标签 : git tag -a 名称 -m '描述信息'
git tag -a v1.1 -m '附注标签'

2.2)基于指定版本创建标签

# git tag -a 标签名称 提交的检验和 -m 提交描述
$ git tag -a v1.0 df4cfa75fd1577e8c443106ea2daab0233566322 -m '第一个版本'

$ git tag -a v1.0 df4cfa75 -m '第一个版本'

3) 删除标签

# 删除标签:git tag -d <标签名称>
$ git tag -d v0.1

4)共享标签

$ git push origin v1.5

这里就分享到这了,希望能给小伙伴带来收货!

总结

使用分支意味着你可以把你的工作从开发主线上分离开来,避免影响开发主线。多线程开发,可以同时开启多个任务的开发,多个任务之间互不影响

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

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

相关文章

C语言---关键字static的初步剖析

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;凡人修C传 &#x1f4ac;总结&#xff1a;希望你看完之后&…

数据结构--队列2--双端队列--java双端队列

介绍 双端队列&#xff0c;和前面学的队列和栈的区别在于双端队列2端都可以进行增删&#xff0c;其他2个都是只能一端可以增/删。 实现 链表 因为2端都需要可以操作所以我们使用双向链表 我们也需要一共头节点 所以节点设置 static class Node<E>{E value;Node<E…

优化设备管理,提升企业效益——工程设备管理模板的实用价值分析

随着建筑行业的不断发展&#xff0c;建筑企业在施工过程中的各种设备也越来越多&#xff0c;设备的管理已经成为建筑企业发展过程中必须要面对的一个问题。作为低代码开发平台&#xff0c;百数根据建筑业的实际需求搭建了一款工程设备管理系统&#xff0c;从而能够让建筑行业企…

图漾相机—windows- Python SDK(官网下载编译)

文章目录 一、 安装依赖&#xff1a;二. 下载swig和SDK&#xff1a;swig下载连接&#xff1a;[https://www.swig.org/](https://www.swig.org/)下载python SDK下载 Windows Camport3 SDK 三、配置python和swig环境变量编译前&#xff0c;请先&#xff1a;安装 Python。 安装 Nu…

智慧垃圾焚烧发电厂Web3D可视化管理系统

前言 随着我国生产力的飞速发展和经济的迅速崛起&#xff0c;城市生活垃圾作为一种生物质能&#xff0c;将其燃烧用于发电&#xff0c;可以有效节约化石能源。 建设背景 随着城镇化进程加速、人民生活水平持续提升,城市生活垃圾产生量也在逐年增长。生活垃圾是“放错地方的资…

Kuboard

安装 Kuboard 之前&#xff0c;假设&#xff1a; 您已经准备好了一个 Linux 服务器用于安装 Kuboard-V3&#xff0c;并且该机器上的 docker 版本不低于 19.03用于安装 Kuboard v3.x 的机器已经安装了 docker&#xff0c;并且版本不低于 docker 19.03您已经有自己的 Kubernetes…

XXL-JOB任务分片

文章目录 任务类型任务配置路由策略阻塞处理策略&#xff1a; 单个任务和集群任务单机多任务分片集群分片 任务类型 单个任务&#xff1a;一个任务实例便可完成 单机单任务&#xff1a;单机模式下任何路由模式都只有一个实例执行 集群单任务&#xff1a;由路由策略(广播模式除…

接口自动化测试之Fiddler的运用

1.接口介绍&#xff08;基础部分&#xff09; 接口是一种用来定义程序的协议&#xff0c;它描述可属于任何类或结构的一组相关行为应用程序编程接口&#xff0c;它是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力接口测…

开源项目合集....

likeshop开源商城系统&#xff0c;公众号商城、H5商城、微信小程序商城、抖音小程序商城、字节小程序商城、头条小程序商城、安卓App商城、苹果App商城代码全开源&#xff0c;免费商用。 适用场景&#xff1a;B2C商城、新零售商城、社交电商商城、分销系统商城、小程序商城、商…

Go单元测试及框架使用

Go自带测试框架 单元测试 建议Go 语言推荐测试文件和源代码文件放在一块&#xff0c;测试文件以 _test.go 结尾。函数名必须以 Test 开头&#xff0c;后面一般跟待测试的函数名参数为 t *testing.T 简单测试用例定义如下&#xff1a; func TestXXXX(t *testing.T) {// ...}…

城市NOA转向BEV,头部Tier 1如何笑傲江湖?

主讲&#xff5c;蒋沁宏 编辑&#xff5c;Amy 编者注&#xff1a; 本文是HiEV出品的系列直播「硬核拆解BEV」第三期问答环节内容整理。商汤绝影量产行车智能驾驶研发负责人蒋沁宏&#xff0c;与连线嘉宾寒武纪行歌自动驾驶总监李想、宏景智驾高级工程经理柴可宁、主持嘉宾周琳…

SpringBoot 源码分析初始化应用上下文(1)-createApplicationContext

前言&#xff1a;springBoot的版本是 2.2.4.RELEASE 一、入口 /*** Run the Spring application, creating and refreshing a new* {link ApplicationContext}.* param args the application arguments (usually passed from a Java main method)* return a running {link A…

2023最新版Java 面试突击手册开源(涵盖 p5-p8 技术栈)

前言: 本文收集整理了各大厂常见面试题N道&#xff0c;你想要的这里都有内容涵盖&#xff1a;Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈&#xff0c;希望大家都能找到适…

【免配置】Qt的mingw使用编译opencv库

【免配置】Qt的mingw_32/64使用编译opencv库 网上在qt中使用mingw编译器配置opencv的时候&#xff0c;通常需要使用cmake编译工具&#xff0c;进行预先编译&#xff0c;步骤比较繁琐&#xff0c;这里推荐一个捷径&#xff0c;直接使用前人编译好的opencv库即可&#xff0c;避免…

软件测试金融项目,在测试的时候一定要避开的一些雷区

软件测试金融项目需要格外谨慎和专注&#xff0c;因为这些项目通常涉及大量的交易、用户隐私和其他敏感信息。以下是一些软件测试金融项目时需要关注的方面&#xff1a; 1. 数据保护 在测试金融项目时&#xff0c;必须确保用户数据和投资信息得到保护。测试人员必须确保测试环…

Flink CDC 实时mysql到mysql

CDC 的全称是 Change Data Capture &#xff0c;在广义的概念上&#xff0c;只要是能捕获数据变更的技术&#xff0c;我们都可以称之为 CDC 。目前通常描述的 CDC 技术主要面向数据库的变更&#xff0c;是一种用于捕获数据库中数据变更的技术。 mysqlcdc需要mysql开启binlog&a…

TCP报文段结构

TCP报文段结构 源端口号和目的端口号&#xff1a;含义从名字就能看出来。 序号和确认号&#xff1a;这二个字段被 TCP 发送方和接收方用来实现可靠数据传输服务&#xff0c;每个字段都是32比特。 接收窗口&#xff1a;该字段用于流量控制&#xff0c;大小为16比特。 首部长度…

VTK学习之vtkProp

vtkProp。渲染场景中数据的可视表达&#xff08;Visible Depictions&#xff09;是由vtkProp的子类负责。 也就是说&#xff0c;数据想要进行可视化显示&#xff0c;需要一个转换过程&#xff0c;这个过程就是转换为vtkProp 这样才能进行渲染展示出来。 而vtkProp子类是vtkA…

一阶电路和二阶电路的时域分析(1)——“电路分析”

小雅兰期末加油冲冲冲&#xff01;&#xff01;&#xff01; 动态电路的方程及其初始条件 动态电路&#xff0c;物理学名词&#xff0c;是指含有储能元件L、C的电路&#xff0c;动态电路方程的阶数通常等于电路中动态元件的个数。 动态电路是指含有储能元件的电路。当动态电路状…

openpnp - 底部相机矫正(subject not found)的原因总结

文章目录 openpnp - 底部相机矫正(subject not found)的原因总结概述问题的由来相机的选择相机焦距的选择相机初始安装距离位置的选择相机安装支柱接触面过大会影响相机模组PCB的安装相机支柱的绝缘问题安装相机模组时的平整度问题相机轴垂直度的问题相机成像时间矫正时的Z轴位…