IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git分支&标签 -> 正文阅读

[开发工具]Git分支&标签

目录

一,分支

环境的的功能及特点

?分支的策略

分支的相关指令

二,标签

1.查看所有标签

2.创建tag?

??3.删除tag

4.分支与版本?


一,分支

1.分支的命名规范

????dev/test/pre/pro(即master)

2.分支的作用

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

环境的的功能及特点

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

分析:

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

?分支的策略

?1.首先,pro分支(即master)应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

?2.那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,?再把dev分支合并到master上,在master分支发布1.0版本

? ?

?3.修复bug时,我们会通过创建新的bug分支(即test)进行修复,然后合并,最后删除;

? ?

?4.当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场

分支的相关指令

?1.查看分支,此命令会列出所有分支,当前分支前面会标一个*号
? ? ?
git branch ? ? ? ? ? //查看本地分支
? ?
?git branch -a ? ? ? ?//查看远程分支

? ?

2.创建分支
? ?
?git branch name ? ? ?//仅仅保存本地,远程还需要push
? ? ?
git push <远程仓库名> <远程分支名>? ? ?
? ?

3.切换分支
? ?
?git checkout name

? ?

4.创建+切换分支
? ? ?
git checkout -b name

? ?

5.合并某分支到当前分支
? ? ?
git merge name


? ? ?

?

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

?

6.删除分支(分本地和远程)
? ? ?
git branch ? ? ? ? ? ? ? ? ? ? ?//查看本地分支
? ? ?
git branch -d name ? ? ? ? ? ? ?//删除本地分支

? ? ?git branch -a ? ? ? ? ? ? ? ? ?//查看远程分支
? ? ?
git push origin --delete dev ? //删除远程分支

?

?7.重命名本地分支,并提交到远程
? ? ?(1).重命名?
? ? ? ?
git branch -m oldBranchName newBranchName
? ? (2)删除远程分支
? ? ?
?git push origin :oldBranchName
? ? (3)将重命名过的分支提交
? ? ? ?
git push origin newBranchName

? ? ? ? ? ? ?3.1.git branch -m 要改的本地分支名 修改后的分支名(修改本地分支)
? ? ? ? ? ? ?3.2.
git push origin :远程修改前的分支名(删除远程分支)
? ? ? ? ? ? ?3.3.
git push origin 修改后的分支名:修改后的分支名(push 到远程分支)
? ? ? ? ? ? ?3.4.
git branch --set-upstream 修改后的分支名 origin/修改后的分支名(绑定远程分支)

效果展示

在仓库存放的文件中也就会出现在命令中执行的两个文件?

?

?

?进入指定文件(dev)

?在仓库中也能看到分支文件,此时的分支只有一个

?当执行?git push origin?(分支名? 将创建的分支提交到远程仓库中)?的命令时,分支文件就被提交过来了

?

?

二,标签

1.查看所有标签

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

2.创建tag?

1.首先,切换到需要打标签的分支上,例如:dev,再创建标签
? ? ? ?git branch
? ? ? ?git checkout dev
? ? ? ?git tag 标签名

创建标签

?

2.推送标签到远程
? ? ? ?
git push origin 标签名
? ? ? ?注1:因为创建的标签都只存储在本地,不会自动推送到远程,还需要手动推送

3.git标签分为两种类型:轻量标签和附注标签,区别:附注标签带注解
? ? ? ?
git tag 标签名 ? ? ? ? ? ? ? ? ? ? ? ? //创建轻量标签
? ? ? ?
git tag -a 标签名 "一期开发完成" ? ?//创建附注标签

? ? ? ?一般推荐打带附注信息的标签,这样可以最大限度查看标签版本的修改情况

??3.删除tag

1.删除本地tag

? ? ? ?git tag -d 标签名
? ? ? ?

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

? ? ?

2.删除远程tag
? ? ? ?1.如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除
? ? ? ? ?git tag -d 标签名
? ? ?

?????????2.然后,再从远程删除。删除命令也是push,但是格式如下:
? ? ? ? ?git push origin :refs/tags/标签名 ? ? ? ?
GUI工具为:TortoiseGit
分3个部分:dev/test如何进行代码修复
? ? ? ? ? dev->test->pre->pro的发布
? ? ? ? ? ?产品升级重新发布?

4.分支与版本?

?dev/test/pre/pro(即master)

? ?

1.克隆远程库test1
? ? ?git clone git@github.com:yanppp999/test1.git

?2.依次创建dev/qas/pre分支(pro即master,已存在不用再创建),然后切换到dev分支
? ? ? git branch dev
? ? ? git branch test
? ? ? git branch pre?

? add(int a, int b){a+b+b} ? v1.0.0?
? add(int a, int b, int c) ? v1.1.0
? add(int... arr) ? ? ? ? ? ?v1.2.0
? ?

3.创建并编辑Cal.java类,添加一个add(int a,int b)方法,然后三步曲:add->commit->push(*****)
? ? ?git add Cal.java
? ? ?git commit -m '项目一期完成'
? ? ?git push origin dev

? ? ?注1:在有分支情况下,push命令需要添加远程仓库名和分支名这两个参数
? ? ? ? ? git push origin dev?
? ? ?注2:doc窗口切换到master,输入ls命令,Cal.java是找不到的,同理在github网站上,也要选择dev分支才能看到Cal.java文件?
? ? ? ? ? git branch master
? ? ? ? ? ls
? ? ?至此,项目一期工作完成,接下来进行测试阶段(会在dev-test两个分支间不断切换)
? ? ?
? ? 标签相关内容,在分支讲完之后,再重新添加进来
? ? ??下面命令此步骤先跳过?
? ? ??创建并推送标签“dev-1.0.0”至远程
? ? ?git checkout dev
? ? ?git tag 1.0.0-alpha
? ? ?git push origin 1.0.0-alpha

知识扩充

? ?5.将dev合并到test
? ? ?git checkout test
? ? ?git merge dev
? ? ?git push origin qas

?6.测试结束之后,创建标签:qas-1.0.0
? ? ?git tag qas-1.0.0
? ? ?
?

?7.将qas合并到pre
? ? ?git checkout pre
? ? ?git merge qas
? ? ?git tag pre-1.0.0

?8.将pre合并到master
? ? ?git checkout master
? ? ?git merge pre
? ? ?git tag prd-1.0.0?


? ?注1:实际生产中的APP或软件软件版本命名规范详解,详情可参考:资料/12,资料/13
? ? ? ? v1.0.0.191202_be.d
? ? ? ? v1.0.0.191210.t?
? ? ? ? v1.0.0.191221.rc?
? ? ? ? v1.0.0.191225.r

9. git clone指定branch或tag?

1.取完整
? ? ?git clone https://github.com/arvidn/libtorrent.git

? ?2.使用指定branch
? ? ?git checkout origin/dev

? ?3.使用指定tag?
? ? ?git checkout 1.0.0-alpha ??

? 4.也可以在clone的时间指定tag或branch:
? ? git clone -b RC_1_1 https://github.com/arvidn/libtorrent.git?
? ? git clone -b libtorrent-1_1_9 https://github.com/arvidn/libtorrent.git

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 01:11:02  更:2022-09-30 01:12:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:49:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码