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地址 仓库名

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

春晚刘谦魔术——约瑟夫环

昨晚&#xff0c;刘谦在春晚上表演了一个魔术&#xff0c;通过对四张撕成两半的纸牌连续操作&#xff0c;最终实现了纸牌的配对。 这个魔术虽然原理不是很难&#xff0c;但是通过刘谦精湛的表演还是让这个魔术产生了不错的效果&#xff08;虽然我感觉小尼的效果更不错&#xff…

【北邮鲁鹏老师计算机视觉课程笔记】02 filter

1 图像的类型 二进制图像&#xff1a; 灰度图像&#xff1a; 彩色图像&#xff1a; 2 任务&#xff1a;图像去噪 噪声点让我们看得难受是因为噪声点与周边像素差别很大 3 均值 滤波核 卷积核 4 卷积操作 对应相乘再累加起来 卷积核记录了权值&#xff0c;把权值套到要卷积…

2023年总结

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

【洛谷题解】P1075 [NOIP2012 普及组] 质因数分解

题目链接&#xff1a;[NOIP2012 普及组] 质因数分解 - 洛谷 题目难度&#xff1a;入门 涉及知识点&#xff1a;枚举&#xff08;优化&#xff09; 题意&#xff1a; 输入样例&#xff1a;21 输出样例&#xff1a;7 分析&#xff1a;枚举到小因数&#xff0c;再除a&#x…

何时以及如何选择制动电阻

制动电阻的选择是优化变频器应用的关键因素 制动电阻器在变频器中是如何工作的&#xff1f; 制动电阻器在 VFD 应用中的工作原理是将电机减速到驱动器设定的精确速度。它们对于电机的快速减速特别有用。制动电阻还可以将任何多余的能量馈入 VFD&#xff0c;以提升直流母线上的…

单片机的认识

单片机的定义 先简单理解为&#xff1a; 在一片集成电路芯片上集成了微处理器&#xff08;CPU &#xff09;存储器&#xff08;ROM和RAM&#xff09;、I/O 接口电路&#xff0c;构成单芯片微型计算机&#xff0c;即为单片机。 把组成微型计算机的控制器、运算器、存储器、输…

Vue3自定义PostCss插件

Vue3自定义PostCss插件 插件功能: 实现自动转px为vw功能 1. 创建插件ts文件2. tsconfig.node.json引入插件3. vite.config.ts增加插件配置4. 编写插件内容5. 示例 插件功能: 实现自动转px为vw功能 px 固定单位,不会随着屏幕的变化而变化 vh vw 相对于视口高宽进行控制 1. 创建…

VSCode:替换空行

有时从不同的编辑器拷贝过来的代码会有很多空行&#xff0c;可以通过以下办法进行删除&#xff1a; 1.按CtrlH弹出替换窗口 2.在查找输入框中输入&#xff1a;^\s*(?\r?$)\n 3.点击使用正则表达式 4.点击全部替换

error: object ‘FastMNNIntegration‘ not found

加载一个包即可 library(SeuratWrappers) #运行fastmnn之前&#xff0c;需要加载&#xff0c;否则报错 obj <- IntegrateLayers(object obj, method FastMNNIntegration,new.reduction "integrated.mnn",verbose FALSE )

C#实现矩阵乘法

目录 一、使用的方法 1.矩阵 2.矩阵的乘法原理 二、实例 1.源码 2.生成效果 一、使用的方法 矩阵相当于一个数组&#xff0c;主要用来存储一系列数&#xff0c;例如&#xff0c;mn矩阵是排列在m行和n列中的一系列数&#xff0c;mn矩阵可与一个np矩阵相乘&#xff0c;结果…

算法------(11)并查集

例题&#xff1a; &#xff08;1&#xff09;Acwing 836.合并集合 并查集就是把每一个集合看成一棵树&#xff0c;记录每个节点的父节点。合并集合就是把一棵树变成另一棵树的子树&#xff0c;即把一棵树的父节点变为另一棵树的父节点的儿子。查询是否在同一集合就是看他们的根…

Linux---网络基础

计算机中的常见概念 协议&#xff08;Protocol&#xff09;&#xff1a; 协议是计算机网络中用于通信的规则和约定的集合。它规定了数据传输的格式、序列、错误检测和纠正方法等。常见的网络协议包括TCP/IP、HTTP、FTP等。 IP地址&#xff08;IP Address&#xff09;&#xf…

Flink从入门到实践(二):Flink DataStream API

文章目录 系列文章索引三、DataStream API1、官网2、获取执行环境&#xff08;Environment&#xff09;3、数据接入&#xff08;Source&#xff09;&#xff08;1&#xff09;总览&#xff08;2&#xff09;代码实例&#xff08;1.18版本已过时的&#xff09;&#xff08;3&…

kubernetes镜像仓库harbor

一、镜像仓库的种类 GitHub GitHub有付费版和免费版,目前默认的docker镜像拉取策略是从GitHub上进行拉取gitee 国内harbor私有仓库二、harbor仓库规划设计 私有镜像仓库 Harbor 安装和配置 新创建一台虚拟机安装harbor, 配置如下: 主机名ip配置网络harbor192.168.1.204VCPU/…

基于springboot会员制医疗预约服务管理信息系统源码和论文

会员制医疗预约服务管理信息系统是针对会员制医疗预约服务管理方面必不可少的一个部分。在会员制医疗预约服务管理的整个过程中&#xff0c;会员制医疗预约服务管理系统担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类的管理系统也在不断改进。本课题所设计…

MacOS - 菜单栏上显示『音量』

教程步骤 点击打开系统偏好『设置』&#xff0c;并找到『控制中心』 在『控制中心模块』找到『声音』&#xff0c;选择『始终在菜单栏显示』

js库和js框架你还分不清吗?一句话就讲明白了。

一、JS库 JS库&#xff08;JavaScript Library&#xff09;是一组封装了常用功能和工具的JavaScript代码集合。它们提供了一系列的函数和方法&#xff0c;使得开发者能够更便捷地进行常见的操作和处理。JS库通常是轻量级的&#xff0c;只关注某个特定的功能或问题领域。 一些常…

JSP编程

JSP编程 您需要理解在JSP API的类和接口中定义的用于创建JSP应用程序的各种方法的用法。此外,还要了解各种JSP组件,如在前一部分中学习的JSP动作、JSP指令及JSP脚本。JSP API中定义的类提供了可借助隐式对象通过JSP页面访问的方法。 1. JSP API的类 JSP API是一个可用于创建…

MinIO对象存储介绍和使用

一、MinIO介绍 MinIO 是一个开源的对象存储服务器。MinIO 提供了一个强大而灵活的对象存储解决方案&#xff0c;适用于各种规模的应用场景。详细介绍可看官网文档&#xff1a;MinIO对象存储 Windows — MinIO中文文档 | MinIO Windows中文文档 1.1 特点 高性能: MinIO 具有出…

【nginx】starrocks通过nginx实现负载均衡、故障转移与flink运行SR实战

文章目录 一. 通过nginx实现starrocks负载均衡与故障转移1. 架构逻辑与nginx配置2. nginx相关知识&#xff1a;stream模块和http模块2.1. stream模块2.2. http模块 二. 使用flink 消费SR实战1. Expect: 100-continue 问题1.1. Expect: 100-continue的逻辑1.2. 问题分析与解决 2…