Git分支以及标签的介绍

news/2024/5/17 16:26:08 标签: git, 团队开发, gitee

目录

一. Git分支

四大环境

使用分支操作

pull拉取远程指定分支以及push推送到远程指定分支 

场景应用“分支的新建与合并”

 二. Git标签

使用标签操作


一. Git分支

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副本。对于大项目来说,这样的过程会耗费很多时间。

有人把 Git 的分支模型称为它的“必杀技特性”,也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出。 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。

四大环境

dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。
test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定
pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。
pro(master)环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境。 

使用分支操作

1. 查看分支

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

2. 创建分支

        git branch name        //创建本地分支
        git push <远程仓库名> <远程分支名>        //创建远程分支

3. 切换分支

        git checkout name

4. 创建+切换分支

        git checkout -b name

5. 合并某分支到当前分支

        git merge name
    注意:当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
    使用git log --graph命令可以看到分支合并图。

6. 删除分支

        git branch -d name              //删除本地分支

        git push origin --delete dev   //删除远程分支

7. 重命名本地分支,并提交到远程

        1.重命名 
               git branch -m oldBranchName newBranchName
        2.删除远程分支
               git push origin :oldBranchName
        3.将重命名过的分支提交
               git push origin newBranchName

pull拉取远程指定分支以及push推送到远程指定分支 

1. pull操作

1.将远程指定分支 拉取到 本地指定分支上
       git pull <远程仓库名> <远程分支名>:<本地分支名>

2.将远程指定分支 拉取到 本地当前分支上
       git pull <远程仓库名> <远程分支名>

3.将与本地当前分支同名的远程分支 拉取到 本地当前分支上
       git pull <远程仓库名>

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


2. push操作

1.将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反)
       git push <远程仓库名> <本地分支名>:<远程分支名>

2.将本地当前分支 推送到 远程指定分支上
       git push <远程仓库名> <远程分支名>

3.将本地当前分支 推送到 与本地当前分支同名的远程分支上
       git push <远程仓库名>

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

场景应用“分支的新建与合并”

实际工作中你可能会用到类似的工作流。 你将经历如下步骤
        1.开发某个软件
        2.为实现某个新的需求,创建一个分支。
        3.在这个分支上开展工作。
正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理
        1.切换到你的线上分支(production branch)。
        2.为这个紧急任务新建一个分支,并在其中修复它。
        3.在测试通过之后,切换回线上分支,然后合并这个修补分支,最后将改动推送到线上分支。
        4.切换回你最初工作的分支上,继续工作。另外,不要忘记将这个BUG在当前分支中进行修复    

 二. Git标签

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

Tag格式: 主版本号.次版本号.修订号-类型标签,其中类型标签可为:alpha、beta、rc、r。
Tag示例:1.0.0-alpha、1.0.0-beta、1.0.0-rc、1.0.0-r

使用标签操作

查看所有标签:        git tag

注意:标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息

 创建标签:        git tag tagname

注意:创建标签首先要切换到需要打标签的分支上,再创建标签

git标签分为两种类型

轻量标签(lightweight)与附注标签(annotated)。

轻量标签很像一个不会改变的分支——它只是某个特定提交的引用。

而附注标签是存储在 Git 数据库中的一个完整对象, 它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间, 此外还有一个标签信息,并且可以使用 GNU Privacy Guard (GPG)签名并验证。 通常会建议创建附注标签,这样你可以拥有以上所有信息。但是如果你只是想用一个临时的标签, 或者因为某些原因不想要保存这些信息,那么也可以用轻量标签。

git tag tagname                                       //创建轻量标签
git tag -a tagname -m "一期开发完成"    //创建附注标签

推送标签到远程:        git push origin tagname 

删除本地标签:        git tag -d tagname

删除远程标签:        

        1. 如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除
            git tag -d tagname
        2. 然后,再从远程删除。删除命令也是push,但是格式如下:
            git push origin :refs/tags/tagname


http://www.niftyadmin.cn/n/5172246.html

相关文章

阿里云-maven私服idea访问私服与组件上传

1.进入aliyun制品仓库 2. 点击 生产库-release进入 根据以上步骤修改本地 m2/setting.xml文件 3.pom.xml文件 点击设置获取url 4. idea发布组件

单链表的基本操作代码

#include<stdio.h> #include<stdlib.h> typedef int Status;//函数类型&#xff08;当return值为函数结果状态时用&#xff09;需要自定义&#xff01; typedef int ElemType;//相当于给 int起个别名 typedef struct LinkList{ ElemType data; struct L…

Google play提高上包率——如何防止封号、拒审、下架?

Google Play是全球最大的移动应用商店之一&#xff0c;它是运行Android操作系统的设备的官方应用商店。它提供各种数字内容&#xff0c;包括应用程序&#xff08;应用&#xff09;、游戏、音乐、书籍等&#xff0c;包括免费和付费选项。这也为许多游戏/APP出海的企业或开发者提…

SpringBoot集成easyexcel实现动态模板导出

添加依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-o…

【教3妹学编程-算法题】765. 情侣牵手

3妹&#xff1a;2哥2哥&#xff0c;你看到新闻了吗&#xff1f;襄阳健桥医院院长 公然“贩卖出生证明”&#xff0c; 真是太胆大包天了吧。 2哥 : 我也看到新闻了&#xff0c;7人被采取刑事强制措施。 就应该好好查查他们&#xff0c; 一查到底&#xff01; 3妹&#xff1a;真的…

ceph rados对象存储索引残留问题排查与处理

问题现象 对象存储存储桶无法删除&#xff0c;检查发现生命周期过期后存储桶中有文件残留&#xff0c;未完全删除&#xff0c;但实际访问文件时为404&#xff0c;通过s3cmd无法删除对象&#xff0c;且无报错。 问题定位 检查bucket当前状态&#xff0c;发现桶内有大量object…

Vuex:辅助函数:mapState,mapMutations,mapActions,mapGetters :VOA模式

说明 Vuex中提供了四个个比较常用的辅助函数&#xff1a;目的是将vuex中对应的 state(),mutaiions{},actions{},getters{}中的数据&#xff0c;函数映射出去&#xff0c;让我们在组件中可以更加简单的使用这些数据与函数 mapStatemapMutationsmapActionsmapGetters 使用案列…

抢量双11!抖音商城「官方立减」 缘何成为“爆单神器”?

10月20日抖音商城双11好物节正式开跑&#xff0c;仅仅三天&#xff0c;抖音商城整体GMV对比去年同期提升了200%&#xff0c;而在开跑一周后&#xff0c;一些品牌的销售额已经超过了今年整个618&#xff0c;可谓增势迅猛。其中&#xff0c;平台官方特别推出的「官方立减」玩法&a…