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. Git 的分支策略

每一个Git仓库都包含一个提交库,这些提交通过元数据(实际上文件对象由其它实体存储,节点上只是存储指向文件对象的指针)相互连接,每个提交包含一个指向自身父提交的引用(指针)。对于合并提交而言,它可能会引用不止一个父提交。Git中的分支实际上是一个指向某个特定提交的命名指针

简单说Git的每个新版本其实只是维护变动和指向变动前版本的指针。简图如下:

????????每一个依赖链组成一条支,刚开始的第一条支叫做主分支(一般默认叫master),从主分支可以分别分出枝干,也就是分分支,但一般会取上一个特定的分支名称。

? ? ? ? 分支的策略有很多,可以根据功能分,根据状态分等方式。但同样都是为了更好的管理代码和协同开发。比如下图:

分支命令常用的有:

1. 创建分支: git branch 分支名称

2. 切换分支: git checkout 分支名称

3. 合并分支: git merge

4. 查看分支:git branch

实践例子:

下面通过实例演示上面分支图2 所示的过程。?首先在branchDemo中新建文件

?提交V1版本:

?执行“git branch” 命令查看当前分支情况, 发现当前只有master分支(主支):

?修改功能A, 新增功能B:

?

?提交V2版本:

?修改功能B, 版本是V3:

?提交版本V3:

?

上面的开发没有考虑分支策略, 这种情况会存在问题:前面功能A和功能C时分开文件的。但假如接下来在代码整体中开发功能C(这里用同一文件表示),当功能C还没开发完成时,上线的功能B出现bug,需要紧急修复,这时功能C开发到一半,将功能C开发的内容回滚又不好,线上bug又等不了功能C完成。那该怎么办?

此时分支策略就起作用了:在功能C开发之前,先基于master主分支拉个分支(比如分支名称为dev),再在dev分支上开发功能C,线上功能B出现bug时,基于master主分支上拉个分支(比如分支名称为bug),在bug上修复,修复完bug后再合并到master,dev不受影响可以继续开发,等功能C开发完后,再将dev合并到master。

接着上面例子,实践如下:

先从master中拉出dev分支,因为现在只有master,所以直接新建dev分支就可以:

?当前在master 分支,切换到dev分支:

开发功能C,开发到一半:

?

?此时线上功能B出现bug,也就是要基于V3版本修改bug。 此时提交未完成功能C,是版本V4:

?切换回master主支,master出于V3版本,也就是不包括功能C的内容:

?查看master上的文件内容:

基于当前的master新建bug分支用于修复bug:

?

?修复bug:

修复后提交版本V5,此时还在dev分支上:

?合并dev分支到master,即是把修复合并到主分支:

未完,待续。。。

  开发工具 最新文章
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-03-03 16:35:43  更:2022-03-03 16:36:11 
 
开发: 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/26 6:53:37-

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