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

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

《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 
* mastertest
[root@git git_data]# git branch dev
[root@git git_data]# git branch dev
* mastertest
4)切换分支
[root@git git_data]# git checkout test		        # 切换至test分支
Switched to branch 'test'
[root@git git_data]# git branch 			# 查看分支处于test中devmaster
* test
[root@git git_data]# git checkout dev
Switched to branch 'dev'
[root@git git_data]# git branch 
* devmastertest#如果当前分支有未提交的内容,不允许切换分支
[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 
* devmastertest
[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
* mastertest
#合并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 
* mastertest
[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
* mastertest

二、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.xdnf.cn/news/1534249.html

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

相关文章

RNN基本介绍

RNN输入和输出不是向量的时候,需要进行向量化。

中国书法—孙溟㠭浅析碑帖《石门颂》

中国书法——孙溟㠭浅析碑帖《石门颂》 《石门颂》是东汉时期的摩崖刻石,属隶属体,全称是《故司隶校尉犍为杨君颂》,建和二年《公元148年》摹刻,记载的内容是杨孟文主持修复褒斜栈道的事迹,因为刻在陕西褒城北石门崖壁…

如何建立一个Webservice WSDL的简单例子(完整例子)

一:根据对方给的wsdl 的接口地址创建Web 的逻辑端口 1:例如这个用C#写的Web 2.我们需要在SAP里建立一个Service Consumers 的服务记得后缀要加?wsdl 2:然后就会生成对应方法的出参 入参 返回的消息根据接口方法来判断 二:如何通过LPCONFIG建立逻辑端口或者通过SOAMANAGER…

系统架构设计师 - 项目管理

项目管理 项目管理(1-3分,案例分析 25分)立项管理 ★盈亏平衡分析 范围管理 ★★时间管理 ★★★★概述前导图法 PDM(单代号网络图)箭线图法 ADM(双代号网络图) 了解关键路径法总时差自由时差 甘特图 成本管理 ★挣值管理概述指数计算 软件质…

actuator字符绕过漏洞在Nginx上的配置

最近遇到了安全部门派发的actuator泄漏漏洞,领导希望不暴露到外网上,对于内网需要认证才可以访问。 要想不暴露到外网上,就需要在网络层面做拦截,比如nginx和apisix上做代理配置。 URI字符绕过的风险背景知识: URI字符绕过是一种安…

Day97 代码随想录打卡|动态规划篇--- 整数拆分

题目(leecode T343): 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 方法: 本题感觉属于有些难度的动态…

【智能流体力学】数值模拟中的稳态和瞬态

在流体力学和数值模拟中, 稳态 (Steady State)意味着流体的物理量(如速度、压力、温度等)不随时间变化。换句话说,在稳态模拟中,系统已经达到了平衡,任何位置上的流场特性都不再随时间发生变化。 其他教程参考:https://doc.cfd.direct/openfoam/user-guide-v12/index…

使用Visual Studio Code配置C/C++开发环境的全面指南

目录 引言 一、准备工作 1. 安装Visual Studio Code 2. 安装C/C编译器 3. 配置环境变量(仅Windows用户) 二、在VS Code中安装C/C扩展 三、创建您的第一个C/C项目 1. 创建项目文件夹 2. 打开项目文件夹 3. 创建源文件 四、配置任务(…

Leetcode3276. 选择矩阵中单元格的最大得分

Every day a Leetcode 题目来源:3276. 选择矩阵中单元格的最大得分 解法1:回溯 每一行最多选1个数字,如果要选,就要保证前面没有选择过该数字,然后将得分累加,传入下一次递归,如果不选&#…

LeetCode题练习与总结:翻转二叉树--226

一、题目描述 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2: 输入:root [2,1,3] 输出:[2,3,1…

QT学习——知识篇

一、qt的ui界面是什么 Qt的UI界面通常指的是使用Qt框架开发的用户界面。Qt是一个跨平台的C图形用户界面库,它提供了丰富的控件和布局,以及用于处理事件和用户交互的机制。在Qt中,UI界面通常是通过Qt Designer工具设计的,然后转换成…

<<编码>> 第 11 章 逻辑门电路(Gates)--猫咪选择电路 示例电路

使用门电路的猫咪选择电路 info::操作说明 鼠标单击开关切换开合状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/code-hlchs-examples/assets/circuit/code-hlchs-ch11-16-cat-circuit-with-gate.txt 集成的猫咪选择电路 in…

基于51单片机的台灯控制(Proteus仿真)

基于51单片机的台灯控制系统以AT89C51为主控,使用LCD1602作为系统主控,借助ADC0832进行ADC转换,获取光敏传感器的值,灯光颜色共有三种,分别是红绿蓝,系统有两种控制方式,一种是蓝牙控制&#xf…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第二集:通过InControl插件实现绑定玩家输入以及制作小骑士移动空闲动画

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、通过InControl插件实现绑定玩家输入二、制作小骑士移动和空闲动画 1.制作动画2.玩家移动和翻转图像3.状态机思想实现动画切换总结 前言 好久没来CSDN看看&…

HBase在大数据实时处理中的角色

HBase是一个分布式的、面向列的开源NoSQL数据库,它建立在Hadoop的HDFS之上,被设计用于处理大规模数据集。HBase非常适合于需要随机实时读写访问的应用程序,例如大数据分析、数据仓库和实时数据处理等场景。本文将探讨HBase是如何进行大数据实…

虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天(中)

虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天-CSDN博客 上篇偏重实现步骤,中篇偏重校准和降低延迟,下篇优化上下文和口音 TTS通用参数 ——————————————————————————————————————————— 以…

传统Malmquist-Luenberger指数与全局Malmquist-Luenberger指数的区别

1.全局技术前沿的构建 1.1传统ML指数 技术前沿的时间依赖性 传统的Malmquist-Luenberger(ML)指数在每个时期(例如年份)单独构建各自的技术前沿。这意味着每个时期的生产可能性集合和技术效率都是基于该时期的数据。 不可比性问…

基于SpringBoot+Vue+MySQL的IT技术交流和分享平台

系统展示 用户前台界面 管理员后台界面 系统背景 在数字化转型的浪潮中,构建一个基于SpringBoot、Vue.js与MySQL的IT技术交流与分享平台显得尤为重要。该平台旨在汇聚广大IT从业者、开发者及爱好者,提供一个高效、便捷的线上空间,用于分享最新…

【笔记】1.2 弹性变形

文章目录 一、弹性变形及实质二、胡克定律1. 单向拉伸2. 剪切和扭转3. E、G和v的关系 三、弹性模量弹性模量的影响因素第二相铸铁石墨形态塑性变形温度影响不明显 四、弹性比功弹性比功表示 五、滞弹性弹性体纯弹性体实际弹性体 主要特征和机制延迟反应内部结构影响因素 弹性滞…

性能测试【Locust】基本使用介绍

一.前言 Locust是一款易于使用的分布式负载测试工具,基于事件驱动,使用轻量级执行单元(如协程)来实现高并发。 二.基本使用 以下是Locust性能测试使用的一个基础Demo示例,该示例有安装Locust、编写测试脚本、启动测…