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规范

开发模型

定义一款合适自己公司的git开发模型很重要,规定所有开发人员的操作规范,约定处理流程,使得软件的开发流程更加清晰,更易于管理。
在这里插入图片描述
1、master 分支
master 为主分支,也是用于部署生产环境的分支,确保master分支稳定性, master 分支一般由develop以及hotfix分支合并,任何时间都禁止直接使用master分支进行代码修改,也禁止直接将代码push到master分支。

2.hotfix 分支

  • hotfix/ 开头的为修复分支,线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支,修复完成后,需要合并到master分支和develop分支。

3.release分支

  • release 为预上线分支,发布提测阶段,会release分支代码为基准提测。
  • 环境验收通过后,将版本发布生产环境,部署到生产环境后,将release分支代码merge到master分支,并打上tag或里程碑等标志
  • 生产环境出现的bug,应该从release分支拉取hotfix分支进行修复,修复完成后,meger回release、master分支
  • 禁止直接使用release分支进行代码修改,也禁止直接将代码push到release分支。

4.develop 分支

  • develop 为开发分支,始终保持最新完成以及bug修复后的代码,一般开发的新功能时,feature分支都是基于develop分支下创建的。
  • 不能随意将dev合并到其他主分支(dev分支可能包含进度不一致的代码或迭代不上线的代码)

分散但集中

在这个模型中,唯?的中?仓库, 命名为origin。
在这里插入图片描述
每个成员除了可以在中心查看origin推拉代码外,还可以从其他同行那里提取变化,组成子团队。如上图有Alice和Bob、Alice和David、Clair和David可以相互组成子团队。

Master分支

在这里插入图片描述

在中心仓库中存在两个无限寿命的分支:

  • master 主分支
  • develop 开发分支,平行于master分支

当源代码在develop分支中被开发完成,并准备发布时,所有的提交变更都应该被合并?master分支, 并使
?Tag?具标记?个版本号。

功能分支feature

在这里插入图片描述
当我们要开发一个新功能的时候,会基于develop分支创建一个本地分支feature-*,它最终会被合并到develop分支中,或者丢弃删除。

  • 来源:develop
  • 合并目标:develop
  • 命名:feature-*

1.基于develop分支创建一个新功能分支:

$ git checkout -b feature-dzh develop
Switched to a new branch "feature-dzh"

2.将新功能分支合并到develop分支中:

$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff feature-dzh
Updating ea1b82a..05e9557
(Summary of changes)
$ git branch -d feature-dzh
Deleted branch myfeature (was 05e9557).
$ git push origin develop

这个–no-ff标志使合并始终创建一个新的提交对象,即使合并可以使用快速转发来执行。这样可以避免丢失有关特性分支历史存在的信息,并且所有组一起提交一起添加的特性,比较:
在这里插入图片描述
在右侧图中,新功能分支中的所有提交,都被嵌?到了develop分支中,除了认真阅读提交的?志信
息,没法把他们分离出来。当我们试图回顾这个新功能分支中做了哪些改动时,将是个很?烦的事
情。如果–no-ff标记,则很容易解决。但它将创建更多(空的)提交对象,但收益要比成本大得多。

发布分支(Release branches)

  • 发布分支release?于新版本发布前的准备?作,它允许我们在发布前,做最后?点点改动,包括少量
    BUG的修改、元数据(如版本信息、编译参数等)的修改等。
  • 来源:develop
  • 合并目标:develop和master
  • 命名:release-*

1.创建?个发布分支:

假设1.1.5是当前的生产版本,我们即将发布一个大版本。状态develop已经为“下一个版本”做好了准备,我们已经决定这将变成1.2版(而不是1.1.6或2.0)。因此,我们退出发行版,并给发布分支一个反映新版本号的名称:

$ git checkout -b release-1.2 develop
Switched to a new branch "release-1.2"

$ ./bump-version.sh 1.2
Files modified successfully, version bumped to 1.2.

$ git commit -a -m "Bumped version number to 1.2"
[release-1.2 74d9424] Bumped version number to 1.2
1 files changed, 1 insertions(+), 1 deletions(-)

在创建一个新分支并切换到它之后,我们增加版本号。这里,bump-version.sh是一个虚构的shell脚本,它更改工作副本中的一些文件以反映新版本。(当然,这可能是一次人工更改-重点是一些)文件更改。然后,提交新的版本号。

2.完成发布分支:

当一个发布分支已经准备好发布时,应首先将release分支合并到master分支(所有master分支的提交都代表一个新的发布工作),然后给master一个tag,以便未来对历史进行跟踪。最后将所有发布分支release上的提交都合并会develop分支,确保下一个发布工作中包括了所有的bug修复。

2.1 GIT的前两个步骤:

$ git checkout master
Switched to branch 'master'
$ git merge --no-ff release-1.2
Merge made by recursive.
(Summary of changes)
$ git tag -a 1.2

发行版现在已经完成,并为以后的参考做了标记。(最好使用-s或-u 以加密方式对标记进行签名的标志)

2.2 为了保持在发布分支中所做的更改,我们需要将它们合并回develop:

$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff release-1.2
Merge made by recursive.
(Summary of changes)

这个步骤很可能导致合并冲突(甚至,因为我们已经更改了版本号)。如果是的话,修复它并提交。

2.3 现在我们真的完成了,发布分支可能会被移除,因为我们不再需要它了:

$ git branch -d release-1.2
Deleted branch release-1.2 (was ff452fe).

紧急修复分支(Hotfix branches)

在这里插入图片描述

  • 来源:master

  • 合并目标:develop和master

  • 命名:hotfix-*

      紧急修复分支和发布分支相似,但它并不不是计划中的?作。它应?于?产环境中出现的紧急bug 
    

修复。紧急修复分支基于线上运?行的Tag号签出,并以此为基础进?行修改。
这样,此处修复可以不不影响当前的开发?作(在develop分支中),专门抽取?个人力力来快速的
修复生产环境的问题。

1.创建?个紧急修复分支:

紧急修复分支基于master创建。比?来说,现在?产环境运?行的是1.2版本,不不幸的是,它发?了了?
个严重的bug。与此同时,我们的开发?作正在进?行中,还没有准备下?次发布。我们需要创建?个
紧急修复分支,来解决现在?产服务器?上发?的问题:

$ git checkout -b hotfix-1.2.1 master
Switched to a new branch "hotfix-1.2.1"

$ ./bump-version.sh 1.2.1
Files modified successfully, version bumped to 1.2.1.

$ git commit -a -m "Bumped version number to 1.2.1"
[hotfix-1.2.1 41e61bb] Bumped version number to 1.2.1
1 files changed, 1 insertions(+), 1 deletions(-)

建立分支时,别忘了了声明新的版本号, 然后,并通过?两次代码提交?作,来完成bug的修复工作。

$ git commit -m "Fixed severe production problem"
[hotfix-1.2.1 abbe5d6] Fixed severe production problem
5 files changed, 32 insertions(+), 17 deletions(-)

2.完成紧急修复分支:

当修复工作完成后,代码重新合并?master进?行发布。同时将其合并?develop分支,已确保在下
一次发布?作中正常的包含了了本次修复。合并?作与发布分支操作类似。

2.1 首先切换到master分支,合并,然后标记tag。

$ git checkout master
Switched to branch 'master'

$ git merge --no-ff hotfix-1.2.1
Merge made by recursive.
(Summary of changes)

$ git tag -a 1.2.1

2.2 然后,在develop中合并本次分支:

$ git checkout master
Switched to branch 'master'

$ git merge --no-ff hotfix-1.2.1
Merge made by recursive.
(Summary of changes)

$ git tag -a 1.2.1

您最好使用-s或-u 以加密方式对标记进行签名的标志。

2.3 接下来,在develop也是:

$ git checkout develop
Switched to branch 'develop'

$ git merge --no-ff hotfix-1.2.1
Merge made by recursive.
(Summary of changes)

特别说明: 如果此时已经创建了了?个发布分支,正准备下?次上线?作,则紧急修复分支应该被
合并至该发布分支,而不不是develop分支。紧急修复的代码将在发布分支完成时,经由发布分支合 并 至develop分支中(如果develop分支也需要立即使用这个紧急修复的代码,则也可以将紧急修复分支
同时合并在develop中)。

2.4 最后,删除临时分支:

$ git branch -d hotfix-1.2.1
Deleted branch hotfix-1.2.1 (was abbe5d6).

参考文献:https://nvie.com/posts/a-successful-git-branching-model/

一些开发规范

1.本公司开发规范
在这里插入图片描述
2.敏捷开发
在这里插入图片描述

  开发工具 最新文章
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-02-26 11:50:46  更:2022-02-26 11:51:21 
 
开发: 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 7:31:04-

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