Git版本与分支

目录

一、Git

二、配置SSH

1.什么是SSH Key

2.配置SSH Key

三、分支

1.为什么要使用分支

2.四个环境及特点

3.实践操作

1.创建分支

2.查看分支

3.切换分支

4.合并分支

5.删除分支

6.重命名分支

7.推送远程分支

8.拉取远程分支

9.克隆指定分支

四、版本

1.什么是版本

2.实践操作

1.创建标签

2.查看所有标签

3.删除标签

4.推送标签到远程

5.克隆指定标签到本地


一、Git

GIT官方网站为了解决部分用户通过命令行对git工具使用时的怨声载道的现象,因此推出了一个GIT的可视化工具Git Gui。

找到电脑任意位置,右键 -> Git Gui Here 打开可视化窗口操作Git。

GitGui建议与ssh key一起使用更加方便

类似的Git的图形化界面工具还有很多,例如:windows上的TortoiseGit,Mac则上SourceTre

二、配置SSH

1.什么是SSH Key

SSH 密钥对可以让您方便的登录到 SSH 服务器,而无需输入密码。SSH 密钥对总是成双出现的,一把公钥,一把私钥。公钥可以自由的放在您所需要连接的 SSH 服务器上,而私钥必须的保管好。

每台电脑上会产生出一个ssh key,然后自己有一个远程账户,但是自己有可能有很多台电脑,包括家里的电脑还有公司的电脑,我们可以在任意一台电脑上工作,但是如果想要每台电脑都和远程版本库时刻保持着通讯,就需要将每台电脑的ssh key添加到远程账户,添加到远程版本库之后,远程版本库就会和已经添加的电脑进行通讯而不会和其他电脑进行通讯。

2.配置SSH Key

操作分为本地电脑配置(前三个步骤属于本地电脑配置)和gitee网站配置。

第一步:配置用户和邮箱(如果已经配置,则跳过)

# 配置用户名
git config --global user.name "username"
# 配置邮箱
git config --global user.email "email"

第二步:检查本地是否存在ssh

找到电脑任意位置,右键 -> Git Bash Here 打开命令窗口,输入以下命令:

# 检查是否存在ssh
cd ~/.ssh
# 查看该目录下是否存在ssh秘钥文件
ls

当cd ~/.ssh命令执行后窗口返回no such file or directory的时候,表示我们的电脑并没有ssh key,所以需要我们创建ssh key。

1) ~表示当前用户的目录,比如我的是:C:\Users\L 2) ls命令执行后,如果本地有ssh秘钥的话会有id_rsa.pub,config,known_hosts等文件

第三步:生成或删除秘钥  

# 请修改成自己的注册邮箱地址
ssh-keygen -t rsa -C "xxx@xx.com"

输入以上命令,接着按3个回车即可。如果本地有ssh,执行以上命令会出现正面的提示,这里选择y,表示覆盖本地的ssh key,其实也就是ssh秘钥删除的意思。

第四步:远程gitee配置

登录到gitee,点击最后侧闹钟图标,选择账号设置页面,最后找到SSH公钥。

输入公钥的标题公钥,点击确定按钮即可。

第五步:测试SSH连接

输入测试命令:ssh -T git@gitee.com

如果显示如下内容,表示ssh key添加成功:

 Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

三、分支

1.为什么要使用分支

假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

怎么办? 现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

2.四个环境及特点

四个环境分别是:dev、test、pre、pro(master),中文名字:开发环境、测试环境、灰度环境、生产环境

  • dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大;

  • test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定;

  • pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样;

  • pro(master)环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境;

3.实践操作

1.创建分支

# 仅仅保存本地,远程还需要push
git branch name     

2.查看分支

查看分支,此命令会列出所有分支,当前分支前面会标一个*号

# 查看本地分支
git branch      
# 查看远程分支
git branch -a        

3.切换分支

# 切换分支
git checkout name

创建+切换分支命令如下:

# 创建+切换
git checkout -b name

4.合并分支

首先切换到需要合并到的目标分支,例如A分支合并到B分支,则B分支为合并到的目标分支。

# 合并分支
git merge name

5.删除分支

# 删除本地分支
git branch -d 分支名称                     
# 删除远程分支
git push origin --delete dev   

6.重命名分支

oldBranchName表示要改的本地分支名称,newBranchName表示修改后的本地分支名称。

# 重命名分支
git branch -m oldBranchName newBranchName

7.推送远程分支

推荐使用第2种方式,git push origin <远程分支名

# 将本地当前分支 推送到 远程指定分支上
git push <远程仓库名> <本地分支名>:<远程分支名>
# 将本地当前分支 推送到 远程指定分支上
git push <远程仓库名> <远程分支名>
# 将本地当前分支 推送到 与本地当前分支同名的远程分支上
git push <远程仓库名>

8.拉取远程分支

在克隆远程项目的时候,本地分支会自动与远程分支建立追踪关系,可以使用默认的origin来替代远程仓库名,所以,我常用的命令就是 git pull origin <远程仓库名>,操作简单,安全可控。

# 将远程指定分支 拉取到 本地指定分支上
git pull <远程仓库名> <远程分支名>:<本地分支名>
# 将远程指定分支 拉取到 本地当前分支上:
git pull <远程仓库名> <远程分支名>
# 将与本地当前分支同名的远程分支 拉取到 本地当前分支上
git pull <远程仓库名>

9.克隆指定分支

使用git拉代码时可以使用 -b 指定分支。

指定拉取master分支代码:

git clone -b master git地址

指定拉取dev分支代码:

git clone -b dev git地址

四、版本

1.什么是版本

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。 将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

软件版本号由四部分组成,第一个1为主版本号,第二个1为子版本号,第三个1为阶段版本号,第四部分为日期版本号加希腊字母版本号,希腊字母版本号共有5种,分别为:base、alpha、beta、RC、release。例如:1.0.0.230322_beta。

有的公司在版本命名时,前面加v,“-”替换成“_”,更加详细一点还可以在修订号后面添加发布日期v1.0.0.191220_alpha,这都是可以的。  

软件版本阶段说明:

  • Base版:此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是页面中的功能都没有做完整的实现,只是做为整体网站的一个基础架构。

  • Alpha版:此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改。

  • Beta版:该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI。

  • RC版:该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几。

  • Release版:该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。该版本有时也称为标准版。一般情况下,Release不会以单词形式出现在软件封面上,取而代之的是符号(R)。

分支与版本的关系

分支版本
devalpha
testbeta
prerc
pror

2.实践操作

1.创建标签

首先,切换到需要打标签的分支上,例如:dev,再创建标签。

# 查看分支
git branch
# 切换到dev分支
git checkout dev
# 创建轻量标签
git tag 1.0.0-alpha
# 创建附注标签
git tag -a 1.0.0-alpha -m "一期开发完成"

git标签分为两种类型:轻量标签和附注标签,区别:附注标签带注解

2.查看所有标签

 标签不是按时间顺序列出,而是按字母排序的。

# 查看所有标签
git tag
# 查看标签信息
git show <tagname>

3.删除标签

因为创建的标签都只存储在本地,不会自动推送到远程。所以,标签可以在本地直接删除。

# 删除本地标签
git tag -d 1.0.0-alpha

4.推送标签到远程

因为创建的标签都只存储在本地,不会自动推送到远程,还需要手动推送

# 将本地标签推送到远程
git push origin 1.0.0-alpha

5.克隆指定标签到本地

git clone --branch [tags标签] [git地址]

例如:

git clone --branch v1.0.0.231010_alpha git地址 仓库名

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

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

相关文章

IOS破解软件安装教程

对于很多iOS用户而言&#xff0c;获取软件的途径显得较为单一&#xff0c;必须通过App Store进行下载安装。 这样的限制&#xff0c;时常让人羡慕安卓系统那些自由下载各类版本软件的便捷。 心中不禁生出疑问&#xff1a;难道iOS世界里&#xff0c;就不存在所谓的“破解版”软件…

【机房预约系统(C++版)】

一、机房预约系统需求 1.1、系统简介 学校现有几个规格不同的机房&#xff0c;由于使用时经常出现“撞车“现象,现开发一套机房预约系统&#xff0c;解决这一问题。 1.2、身份简介 分别有三种身份使用该程序学生代表:申请使用机房教师:审核学生的预约申请管理员:给学生、教…

【Java八股面试系列】并发编程-并发关键字,线程池

目录 并发关键字 Synchronized synchronized最主要的三种使用方式&#xff1a; 具体使用&#xff1a;双重校验锁单例模式 synchronized 底层实现原理&#xff1f; synchronized锁的优化 偏向锁 轻量级锁 重量级锁 Mark Word 与 Monitor 之间的关系 总结 偏向锁、轻量…

蓝桥杯刷题day08——完全日期

1、题目描述 如果一个日期中年月日的各位数字之和是完全平方数&#xff0c;则称为一个完全日期。 例如&#xff1a;2021年6月5日的各位数字之和为20216516&#xff0c;而16是一个完全平方数&#xff0c;它是4的平方。所以2021年6月5日是一个完全日期。 请问&#xff0c;从200…

操作系统(13)-----文件管理

目录 一.内存映射文件 传统的文件访问方式&#xff1a; 内存映射文件&#xff1a; 内存映射文件与传统文件访问方式的区别&#xff1a; 文件共享的实现&#xff1a; 内存映射文件的优点&#xff1a; 二.文件的属性 三.文件的逻辑结构 1.无结构文件 2.有结构文件 四.…

书生·浦语大模型全链路开源体系

参考&#xff1a;https://www.bilibili.com/video/BV1Rc411b7ns/?spm_id_from333.788&vd_source3bbd0d74033e31cbca9ee35e111ed3d1 背景&#xff1a; 人工智能的发展从针对特定任务&#xff0c;用一个模型解决一个问题过渡到一个模型来应对多模态、多任务&#xff0c;大模…

门诊单据打印用什么软件,线下处方单生成系统教程

门诊单据打印用什么软件&#xff0c;线下处方单生成系统教程 一、前言 以下软件教程以 佳易王诊所电子处方管理系统软件V17.3为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 如上图&#xff0c;电子处方或病历记录开单生成保存后&#xff0c;可…

【数学建模】【2024年】【第40届】【MCM/ICM】【A题 七鳃鳗性别比与资源可用性】【解题思路】

我们通过将近半天的搜索数据&#xff0c;查到了美国五大湖中优势物种的食物网数据&#xff0c;以Eric伊利湖为例&#xff0c;共包含34各优势物种&#xff0c;相互之间的关系如下图所示&#xff1a; 一、题目 &#xff08;一&#xff09; 赛题原文 2024 MCM Problem A: Reso…

推荐几个Python爬虫接单渠道

前言 平时工作有闲的家人们&#xff0c;今天给大家推荐一些用Python爬虫做私活的渠道&#xff01; 【Python爬虫学习资料】 先给各位还不熟悉Python爬虫的朋友介绍一下&#xff01; 可以短时间获得大量资料~ 可以进一步数据分析 当然也可以获得收益&#xff01; 学会Python…

第十七篇【传奇开心果系列】Python的OpenCV库技术点案例示例:自适应阈值二值化处理图像提取文字

传奇开心果短博文系列 系列短博文目录Python的OpenCV库技术点案例示例系列短博文目录前言一、自适应阈值二值化处理图像提取文字轮廓的初步示例代码:二、扩展思路介绍三、调整自适应阈值二值化的参数示例代码四、对二值化图像进行形态学操作示例代码五、使用轮廓特征进行筛选示…

113.路径总和 II

给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22 输出&a…

【开源】JAVA+Vue+SpringBoot实现实验室耗材管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…

RocketMQ客户端实现多种功能

目录 RocketMQ客户端基本流程 消息确认机制 1、消息生产端采用消息确认加多次重试的机制保证消息正常发送到RocketMQ 单向发送 同步发送 异步发送 2、消息消费者端采用状态确认机制保证消费者一定能正常处理对应的消息 3、消费者也可以自行指定起始消费位点 广播消息 …

【Web】基于Mybatis的SQL注入漏洞利用点学习笔记

目录 MyBatis传参占位符区别 不能直接用#{}的情况 in多参数值查询 like %%模糊查询 order by列名参数化 MyBatis传参占位符区别 在 MyBatis 中&#xff0c;#{} 和 ${} 都是用于传参的占位符&#xff0c;但它们之间有很大的区别&#xff0c;主要体现在两个方面&#xff1a…

并发容器+并发队列【ConcurentHashMap、CopyOnWriteArrayList、阻塞队列、ArrayBlockingQueue】

并发容器 什么是并发容器?同步容器:并发容器: ConcurrentHashMap结构图JDK1.7结构图JDK1.8结构图 CopyOnWriteArrayList实现原理 并发队列阻塞队列ArrayBlockingQueue 转自极客时间 什么是并发容器? 在JUC包中&#xff0c;有一大部分是关于并发容器的&#xff0c;如Concurr…

【Python中Selenium元素定位的各种方法】

1、元素定位操作&#xff1a; 2、创建浏览器驱动操作&#xff0c;导入By模块&#xff1a; from selenium import webdriver # 用于界面与浏览器互动 from selenium.webdriver.common.by import By # 用于元素定位 driver webdriver.Chrome() # 调用Chrome类&#xff0c;创…

材料非线性Matlab有限元编程:初应力法与初应变法

导读:本文主要围绕材料非线性问题的有限元Matlab编程求解进行介绍,重点围绕牛顿-拉普森法(切线刚度法)、初应力法、初应变法等三种非线性迭代方法的算法原理展开讲解,最后利用Matlab对材料非线性问题有限元迭代求解算法进行实现,展示了实现求解的核心代码。这些内容都将收…

2023年总结

人们总说时间会改变一切&#xff0c;但事实上你得自己来。 今年开始给自己的时间读书、工作、生活都加上一个2.0的release版本号&#xff0c;相比过去的一年还是有很多进步的。 就跟git commit一样&#xff0c;一步一步提交优化&#xff0c;年底了发个版本。用李笑来的话说&am…

【洛谷题解】P1595 信封问题

题目链接&#xff1a;信封问题 - 洛谷 题目难度&#xff1a;普及- 涉及知识点&#xff1a;错排 题意&#xff1a; 分析&#xff1a;直接用错排公式代入即可 AC代码推理公式&#xff1a; #include<bits/stdc.h> using namespace std; long long f[25]; int main()//用…

服务器被黑,安装Linux RootKit木马

前言 疫情还没有结束&#xff0c;放假只能猫家里继续分析和研究最新的攻击技术和样本了&#xff0c;正好前段时间群里有人说服务器被黑&#xff0c;然后扔了个样本在群里&#xff0c;今天咱就拿这个样本开刀&#xff0c;给大家研究一下这个样本究竟是个啥&#xff0c;顺便也给…