【devops】devops-git之git分支与标签使用

news2024/11/15 13:41:45

 本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》从问题中去学习k8s

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

《DBA》db的介绍使用(mysql、redis、mongodb...)

一、git分支

1.什么是分支

`分支即是平行空间,假设你在为某个手机系统研发拍照功能,代码已经完成了80%,但如果将这不完整的代码直接提交到git仓库中,
又有可能影响到其他人的工作,此时我们便可以在该软件的项目之上创建一个名叫”拍照功  能”的分支,这种分支只会属于你自己,
而其他人看不到,等代码编写完成后再与原来的项目主分支合并下即可,这样即能保证代码不丢失,又不影响其他人的工作。

img

2.分支的操作

1)查看 当前分支
`一般在实际的项目开发中,我们要尽量保证master分支是非常稳定的,仅用于发布新版本,平时不要随便直接修改里面的数据文件,
而工作的时候则可以新建不同的工作分支,等到工作完成后在合并到master分支上面,所以团队的合作分支看起来会像上面图那样。`
[root@git git_data]# git log --oneline  --decorate
3044a5a (HEAD, master) 错误的提交		#HEAD表示指针,master表示主分支,默认分支指向你最后一次的提交 HEAD头、指针
43f49f3 modified 3
90f573f rename 3 too
5d61056 rename 3.txt
a4566ae add new file 3
2)查看所有分支
[root@git git_data]# git branch 
* master		# * 表示当前所在的分支 
3)创建分支
[root@git git_data]# git branch test		# 新建test分支
[root@git git_data]# git branch 
* master
  test
[root@git git_data]# git branch dev
[root@git git_data]# git branch 
  dev
* master
  test
4)切换分支
[root@git git_data]# git checkout test		        # 切换至test分支
Switched to branch 'test'
[root@git git_data]# git branch 			# 查看分支处于test中
  dev
  master
* test
[root@git git_data]# git checkout dev
Switched to branch 'dev'
[root@git git_data]# git branch 
* dev
  master
  test

#如果当前分支有未提交的内容,不允许切换分支
[root@git git_data]# git checkout test
error: Your local changes to the following files would be overwritten by checkout:
	master
Please, commit your changes or stash them before you can switch branches.
Aborting
5)使用分支
#1.主分支创建文件并提交到本地仓库
[root@git git_data]# touch master
[root@git git_data]# git add master
[root@git git_data]# git commit -m "测试主分支提交代码"

#2.切换到dev分支,查看工作区域,没有主分支创建的文件
[root@git git_data]# git checkout dev
[root@git git_data]# git branch 
* dev
  master
  test
[root@git git_data]# ll
-rw-r--r-- 1 root root 4 Sep 17 17:40 3

#3.普通分支创建文件并提交到本地仓库
[root@git git_data]# touch dev
[root@git git_data]# ll
total 4
-rw-r--r-- 1 root root 4 Sep 17 17:40 3
-rw-r--r-- 1 root root 0 Sep 21 22:52 dev
[root@git git_data]# git add dev
[root@git git_data]# git commit -m "测试dev分支提交代码"
 
#4.切换到主分支查看
[root@git git_data]# git checkout master
Switched to branch 'master'
[root@git git_data]# ll
total 4
-rw-r--r-- 1 root root 4 Sep 17 17:40 3
-rw-r--r-- 1 root root 0 Sep 21 22:53 master
6)合并分支
#切换到主分支
[root@git git_data]# git branch 
  dev
* master
  test
#合并dev分支的代码
[root@git git_data]# git merge dev

#查看内容(主分支中多了dev分支中的内容)
[root@git git_data]# ll
total 8
-rw-r--r-- 1 root root 4 Sep 17 17:40 3
-rw-r--r-- 1 root root 0 Sep 21 22:58 dev
-rw-r--r-- 1 root root 0 Sep 21 22:58 master

#切换回dev分支,修改代码内容
[root@git git_data]# git checkout dev
[root@git git_data]# echo dev > dev 

#再次切换回主分支,代码自动更新
[root@git git_data]# git checkout master
[root@git git_data]# ll
total 8
-rw-r--r-- 1 root root 4 Sep 17 17:40 3
-rw-r--r-- 1 root root 4 Sep 21 22:58 dev
-rw-r--r-- 1 root root 0 Sep 21 22:58 master

#查看git提交日志
[root@git git_data]# git log --oneline --decorate
131f703 (HEAD, master) Merge branch 'dev'
4566cb6 (dev) 测试dev分支提交代码
525099c 测试主分支提交代码
3044a5a (test) 错误的提交			#test没有任何操作,所以停留在最后操作的时间点
43f49f3 modified 3
90f573f rename 3 too
5d61056 rename 3.txt
a4566ae add new file 3
7)合并冲突
#在主分支创建一个文件并提交到本地仓库
[root@git git_data]# git branch 
* master
  test
[root@git git_data]# echo master > master 
[root@git git_data]# git add .
[root@git git_data]# git commit -m '删除开发使用的分支及数据'
 
#切换到普通分支,创建一个与主分支相同名字的文件
[root@git git_data]# git checkout test
[root@git git_data]# echo 1111 > master

#提交普通分支的文件到本地仓库
[root@git git_data]# git add .
[root@git git_data]# git commit -m "在test分支创建一个与主分支一样的文件"

#回到主分支进行分支合并
[root@git git_data]# git checkout master
[root@git git_data]# ll
total 8
-rw-r--r-- 1 root root 4 Sep 17 17:40 3
-rw-r--r-- 1 root root 7 Sep 21 23:11 master
[root@git git_data]# git merge test
Auto-merging master
CONFLICT (add/add): Merge conflict in master
Automatic merge failed; fix conflicts and then commit the result.

#编辑冲突的文件,删除没有用的内容,保留需要代码
[root@git git_data]# vim master 
[root@git git_data]# git add .
[root@git git_data]# git commit -m "解决分支合并冲突"
[master 6f9367c] 解决分支合并冲突

#解决分支合并,如果有修改内容需要再次合并
8)删除分支
# 当分支已经和主分支合并,那可以对分支进行删除处理
[root@git git_data]# git branch -d dev
Deleted branch dev (was 4566cb6).
[root@git git_data]# git branch
* master
  test

二、git标签

Git 可以给仓库历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点(v1.0 、v2.0等等)。
当需要进行回滚操作可直接使用标签名进行回滚,便于记忆,无需使用id。

1.打标签

1)查看提交
[root@git git_data]# git log --oneline --decorate
6f9367c (HEAD, master) 解决分支合并冲突
a2993b3 在test分支创建一个与主分支一样的文件
70c9ada 删除开发使用的分支及数据
131f703 Merge branch 'dev'
4566cb6 测试dev分支提交代码
525099c 测试主分支提交代码
3044a5a 错误的提交
43f49f3 modified 3
90f573f rename 3 too
5d61056 rename 3.txt
a4566ae add new file 3
2)打标签
[root@git git_data]# git tag -a 2.0 -m "解决分支合并冲突以后的标签"

-a		#指定标签的名字
-m		#给标签加注释,也就是指定说明文字

#当没有指定标签打在那一次更新上,默认将标签打在最近一次提交的上面
[root@git git_data]# git log --oneline --decorate
6f9367c (HEAD, tag: 2.0, master) 解决分支合并冲突
a2993b3 在test分支创建一个与主分支一样的文件
70c9ada 删除开发使用的分支及数据
131f703 Merge branch 'dev'
4566cb6 测试dev分支提交代码
525099c 测试主分支提交代码
3044a5a 错误的提交
43f49f3 modified 3
90f573f rename 3 too
5d61056 rename 3.txt
a4566ae add new file 3
3)给指定提交打标签
[root@git git_data]# git tag -a v1.0 4566cb6 -m "测试给指定提交打标签"
[root@git git_data]# git tag
2.0
v1.0

[root@git git_data]# git log --oneline --decorate
6f9367c (HEAD, tag: 2.0, master) 解决分支合并冲突
a2993b3 在test分支创建一个与主分支一样的文件
70c9ada 删除开发使用的分支及数据
131f703 Merge branch 'dev'
4566cb6 (tag: v1.0) 测试dev分支提交代码
525099c 测试主分支提交代码
3044a5a 错误的提交
43f49f3 modified 3
90f573f rename 3 too
5d61056 rename 3.txt
a4566ae add new file 3

2.查看标签

[root@git git_data]# git tag
2.0
[root@git git_data]# git show v1.0   # 查看v1.0的信息  git show 加标签查看

3.根据标签回滚

#使用提交的ID进行回滚
[root@git git_data]# git reset --hard 3044a5a
HEAD is now at 3044a5a 错误的提交
[root@git git_data]# git log --oneline --decorate
3044a5a (HEAD, master) 错误的提交
43f49f3 modified 3
90f573f rename 3 too
5d61056 rename 3.txt
a4566ae add new file 3
[root@git git_data]# ll
total 4
-rw-r--r-- 1 root root 4 Sep 17 17:40 3

#使用标签进行回滚
[root@git git_data]# git log --oneline --decorate
3044a5a (HEAD, master) 错误的提交
43f49f3 modified 3
90f573f rename 3 too
5d61056 rename 3.txt
a4566ae add new file 3
[root@git git_data]# git reflog			#(可对回滚标签查看)
[root@git git_data]# git reset --hard v1.0
HEAD is now at 4566cb6 测试dev分支提交代码
[root@git git_data]# git log --oneline --decorate
4566cb6 (HEAD, tag: v1.0, master) 测试dev分支提交代码
3044a5a 错误的提交
43f49f3 modified 3
90f573f rename 3 too
5d61056 rename 3.txt
a4566ae add new file 3

[root@git git_data]# git reset --hard 2.0
[root@git git_data]# git log --oneline --decorate
6f9367c (HEAD, tag: 2.0, master) 解决分支合并冲突
a2993b3 在test分支创建一个与主分支一样的文件
70c9ada 删除开发使用的分支及数据
131f703 Merge branch 'dev'
4566cb6 (tag: v1.0) 测试dev分支提交代码
525099c 测试主分支提交代码
3044a5a 错误的提交
43f49f3 modified 3
90f573f rename 3 too
5d61056 rename 3.txt
a4566ae add new file 3

4.删除标签

#删除标签
[root@git git_data]# git tag -d 2.0
Deleted tag '2.0' (was ed07882)
[root@git git_data]# git tag 
v1.0
[root@git git_data]# git log --oneline --decorate
6f9367c (HEAD, master) 解决分支合并冲突
a2993b3 在test分支创建一个与主分支一样的文件
70c9ada 删除开发使用的分支及数据
131f703 Merge branch 'dev'
4566cb6 (tag: v1.0) 测试dev分支提交代码
525099c 测试主分支提交代码
3044a5a 错误的提交
43f49f3 modified 3
90f573f rename 3 too
5d61056 rename 3.txt
a4566ae add new file 3

 

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

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

相关文章

Python画笔案例-047 绘制雪花

1、绘制雪花 通过 python 的turtle 库绘制 雪花,如下图: 2、实现代码 绘制 雪花,以下为实现代码: """雪花.py """ import turtledef draw_branch(d):for _ in range(2):turtle.fd(d)turtle.lt(45)…

实时分析都靠它→揭秘YashanDB列式存储引擎的技术实现

01 概述 YashanDB列式存储引擎,又称为LSC(Large-scale Storage Columnar Table)。其通过自研的CBO优化器、向量化执行、原生列存格式等技术,达到业界领先的查询分析能力。 YashanDB LSC是专为海量数据的实时分析场景而设计,致力…

vue3 动态 svg 图标使用

前言 在做后台管理系统中,我们经常会用到很多图标,比如左侧菜单栏的图标 当然这里 element-ui 或者 element-plus 组件库都会提供图标 但是在有些情况下 element-ui 或者 element-plus 组件库提供的图标满足不了我们的需求时,这个时候我们就需要自己去网上找一些素材或者…

逆向学习系列(三)adb的使用

由于是记录学习,我就用结合自己的理解,用最通俗的语言进行讲解。 adb是android debug bridge的简写,其作用就是将电脑和手机相连接,用电脑控制手机。 一、adb哪里来 我使用的adb一般都是安装模拟器的时候,模拟器自带…

动不动就下跪的三星,离开天津了

关注卢松松,会经常给你分享一些我的经验和观点。 三星辉煌岁月已过,万事凋零!如果说IBM、惠普、戴尔、苹果、富士康的离开有点惋惜的话,那三星的离开就是“活该”了。 成立于1993年的天津三星电子有限公司与2024年9月6日注销了&#xff0…

TCP交互通讯在Windows中的频率

在基于TCP协议的交互式通讯中,通过网口进行数据传输时,Windows系统的通讯频率通常受到多方面的限制,很难稳定达到几千Hz。以下是关于频率范围的合理分析及提高频率的措施。 频率限制的原因: 网络延迟:TCP通讯的一个核心…

内幕!smardaten无代码平台全方位测评,这些细节你绝对想不到!

目录 一、引言二、测评要点2.1、前后端交互嵌套2.2、兼容性与可扩展性2.2.1、页面集成2.2.2、数据集成2.2.3、接口集成2.2.4、权限集成2.2.5、代码扩展支持 2.3、UI定制2.4、开发环境的隔离2.5、OEM定制2.6、多语言切换2.7、AI大模型能力 三、总结 一、引言 作为一枚IT从业者&…

了解计算机安全性【技术、管理与法律】

‍ 在当今数字化时代,计算机安全性 已成为每个计算机用户必须关注的重要课题。无论是在个人计算机、企业系统,还是政府机构,保障计算机系统的安全性都是不可忽视的责任。那么,什么是计算机安全性?它又包括哪些方面呢&…

django学习入门系列之第十点《A 案例: 员工管理系统7》

文章目录 9 初识Form9.1 views.py9.2 add.html 10 初识ModelForm10.1 models.py10.2 views.py10.3 add.html10.4 添加类10.5 重写对象 往期回顾 9 初识Form 9.1 views.py 在html的文件中,如写input组件那种会写的非常繁琐,所以会用form的一个功能来进行…

JEE 设计模式

Java 数据访问对象模式 Java设计模式 - 数据访问对象模式 数据访问对象模式或DAO模式将数据访问API与高级业务服务分离。 DAO模式通常具有以下接口和类。 数据访问对象接口定义模型对象的标准操作。 数据访问对象类实现以上接口。可能有多个实现,例如&#xff0c…

java重点学习-线程池

十 线程池 10.1 说一下线程池的核心参数,线程池的执行原理 为什么使用线程池 创建线程占用内存空间,每次创建的话会浪费内存cpu有限,大量线程会导致cpu切换 10.2 线程池中有哪些常见的阻塞队列 workQueue-当没有空闲核心线程时,新…

[产品管理-14]:NPDP新产品开发 - 12 - 产品创新流程 - 创新章程与通用流程

目录 前言: 一、什 么 是 产 品 创 新 流 程 ? 1.1 概述 1.2 管 理 创 新 产 品 失 败 的 2个风 险 : 不 确 定 性 和 成 本 1、不确定性风险 2、成本风险 1.3 重点关注创新产品的起点的正确性:正确的事 二、产品创造章程…

Day10-作业讲解,Ingress规则编写及Jenkins集成K8S项目实战案例

Day10-作业讲解,Ingress规则编写及Jenkins集成K8S项目实战案例 1、作业:1.1 作业分析:1.2 复刻镜像1.3 将游戏镜像上K8S集群1.4 helm部署服务1.5 ingress规则编写 2、项目1-jenkins和k8s集成2.1 Jenkins实现k8s持续集成项目流程图解2.2 Jenkins集成K8S-将代码推送到…

Cmake之3.27版本重要特性及用法实例(二十二)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

解锁NXP i.MX93 DDR精准校正,极限压力测试

在前一篇关于NXP i.MX93开板流程的文章中,我们已经详细说明了目标板(Target Board)在打件完成后需要注意的事项。接下来的步骤是进行DRAM的时序校正及压力测试。 在i.MX8及之前的系列中, DDR压力测试是使用DDR Stress Test Tool&…

Python绘制论文图

Python Graph Gallery Python Boxplot Gallery | Dozens of examples with code

记录一下,Vcenter清理/storage/archive空间

一、根因 vpostgres:这个目录可能包含与 vCenter Server 使用的 PostgreSQL 数据库相关的归档文件过多,导致空间被占用。 二、处理过程 1、SSH登陆到Vcenter. 2、df -Th **图中可以看到 /storage/archive 使用占比很高。 /storage/archive 目录通常用…

光耦选型 | 光伏逆变器使用光耦型号推荐——KL101X系列

光伏逆变器是太阳能光伏发电系统中的关键设备之一,主要用于将光伏电池板产生的直流电转换为交流电,以供电网使用或者直接驱动交流电负载。在光伏逆变器中,光耦扮演着重要的角色,主要应用在以下几个方面: 隔离保护&…

前端基本功——面试必问系列(1):都2024了,还没吃透Promise?一文搞懂

写在前面: 大家好,我是山里看瓜,该系列文章是为了帮助大家不管面试还是开发对前端的一些基本但是很重要的知识点认识更加深入和全面。 想写这个系列文章的初衷是:我发现前端的很多基本知识,使用起来很简单&#xff0…