快乐学习 一个网站喵查铺子(catpuzi.com)全搞定~

git使用操作流程-架构师

编程杂谈 尔雅学习君 2023-10-06 扫描二维码

延续上一篇,这是从架构师的角度出发进行git的使用操作。从中包含了一些项目管理方面的规划,也看出架构师的工作还是蛮多的。

版本管理
简化版本
此为最常用的版本方式[1]。版本号采用在分支上打tag标识,格式为x.y.ab[.c],示例 0.1.01[.0]。

x 大版本

y 中版本

ab 小版本,这里主要是为了支持二分法所以做成2位

p 补丁号

代码管理体系
代码评审
开发人员 → [开发经理] → 架构师

代码合并
在master/develop分支中,由架构师进行管理,以基于MR(Merge Request)的代码合并方法作为合并方法。

在feature分支中,由开发人员自行管理,一般以基于分支的代码合并作为合并方法。

分支管理
master分支 生产代码所用分支,保护分支,发版稳定后(3日)需要从release分支合并

release分支 发版所用分支,保护分支,从develop拉出,与master分支合并,可进行回归测试和投产演练测试

develop分支 开发代码所用分支,保护分支,可进行功能测试

feature分支 功能开发所用分支,非保护分支,从develop分支拉出

bugfix分支 bugfix所用分支,非保护分支,从develop/release拉出

hotfix分支 hotfix所用分支,从master分支拉出,合并回master/develop分支

uat分支 uat环境所用分支,保护分支,从develop拉出

命名
关键点英文命名
尽管是非必须,但对一些关键点进行英文命名后会很方便后续的代码开发和管理。

大型项目或平台的总称

模块名

功能feature名

仓库命名
依据前后端架构分离的原则,一般需要创建多个项目仓库。仓库的命名应能体现出各自的特点。

一般性的命名规则[2]:

PC网站仓库 xx_front

移动端-android仓库 xx_android

移动端-ios仓库 xx_ios

移动端-微信小程序仓库 xx_wechatMini

移动端-支付宝小程序仓库 xx_alipayMini

移动端-快应用仓库 xx_quickMini

后端仓库 xx_back

DB仓库 xx_db 若无特殊需求,则合并于后端仓库的sql文件夹

前后端不分离的应用 xx_app

架构师
架构师,是git项目的创建者、管理者,有时也可能为开发经理。这里仅以架构师代指。

创建项目的仓库组
仓库组是将多个仓库整合在一起进行管理,属于逻辑层的概念,往往是某个大型项目或平台的总称。

使用yyy用户进行登录,可向gitlab管理员申请此用户。

Gitlab → Groups → Your groups → New Group

填写要点:

Group name

yyy(项目英文名称)grp

Group description (optional)

建议填写项目描述信息

Visibility level

Private

创建仓库
使用yyy用户进行登录,可向gitlab管理员申请此用户。

填写要点:

Project name

需遵循项目命名原则,如yyy_front

Project URL

选择所在的项目组yyygrp

Project description (optional)

建议填写项目所对应的前后端仓库的描述信息

Visibility Level

Private

初始化仓库代码
以本地的代码进行初始化代码仓库,其会自动生成master分支。

cd existing_folder
git init
git remote add origin http://xxx.xxx.xx.xx/yyy_back.git
git add .
git commit -m “初始化”
git push -u origin master
初始化文档
以yyy_back.git项目为例,在项目的根目录,创建以下文档内容。

README.md
README.md内容及格式如下:

# Yyy(项目英文名称) 有意义(项目中文名称)
git使用操作流程-架构师
—-
yyy项目是一个解决zzz痛点的平台型系统。它提供了……
—-
## 快速入门
可以试一试我们的 [演示网站] ,直观地感受它。
……
## 开发指引
可通过 [项目代码结构] ,从整体上对项目有所了解。
## 交流支持
可通过 [交流支持] ,与我们交流、提问、反馈,持续完善。
## 版本历史
[版本历史]
## 贡献者
感谢为本产品做出卓越贡献的你们。
赵纪刚
[演示网站]: https://xxx.xxx.xx.xx/master/demo/demo.html
[项目代码结构]: https://xxx.xxx.xx.xx/master/CODE-OF-CONDUCT.md
[交流支持]: https://xxx.xxx.xx.xx/master/SUPPORT.md
[版本历史]: https://xxx.xxx.xx.xx/master/CHANGELOG.md
CODE-OF-CONDUCT.md
# 代码结构
需给出进一步示例
SUPPORT.md
## 交流支持
欢迎使用yyy!我们使用gitlab进行代码管理、需求完善、bugfix,也可以通过以下方式进行更自由的交流。感谢您的理解与支持!
### 文档
* [用户手册](https://xxx.xxx.xx.xx/master/docs/)
* [部署步骤](https://xxx.xxx.xx.xx/master/docs/deploy/)
* [问题排查](https://xxx.xxx.xx.xx/master/docs/troubleshooting/)
### 邮箱

### 即时交流
* 微信群
您可以通过微信群向我们提问、交流、建议,以及最最关键地帮助我们完善这个产品。
微信群:待完善
* QQ群
您也可以通过QQ群向我们提问、交流、建议,以及最最关键地帮助我们完善这个产品。
QQ群:
### 论坛
待完善
CHANGELOG.md
CHANGELOG/README.md
在项目仓库的根目录下创建文件夹 CHANGELOG。

在 CHANGELOG 下创建 README.md

# CHANGELOGs
– [CHANGELOG-0.2.md](./CHANGELOG-0.2.md)
– [CHANGELOG-0.1.md](./CHANGELOG-0.1.md)
在 CHANGELOG 下创建 CHANGELOG-0.1.md


– [v0.1.03](#v0103)
– [Downloads for v0.1.03](#downloads-for-v0103)
– [Changes since v0.1.02](#changes-since-v0102)
– [Other notable changes](#other-notable-changes)
– [v0.1.02](#v0102)
– [Downloads for v0.1.02](#downloads-for-v0102)
– [Changes since v0.1.01](#changes-since-v0101)
– [Other notable changes](#other-notable-changes)
– [Known Issues](#known-issues)
– [v0.1.01](#v0101)
– [Downloads for v0.1.01](#downloads-for-v0101)
– [Changes since v0.1.01](#changes-since-v0101)
– [Major Themes](#major-themes)
– [Other notable changes](#other-notable-changes)
– [Experimental Features](#experimental-features)
– [Action required](#action-required)


# v0.1.03
[Documentation](https://xxx.xxx.xx.xx/master/docs/) & [Examples](https://xxx.xxx.xx.xx/release-0.1/examples/)
## Downloads for v0.1.03
### tar ball
filename | sha256 hash
——– | ———–
[yyy.tar.gz](https://storage.xxx.com/yyy-release/release/v0.1.03/yyy.tar.gz) | `53db157923c17fa7a0addb3e4dfe7d1b9194b9266a87d371a251d5bb790a1832`
[yyy-src.tar.gz](https://storage.xxx.com/yyy-release/release/v0.1.03/yyy-src.tar.gz) | `e6e46831706743d8263581d0575507cf5ffc265096d22e5e84cf1c3ae925db5e`
### binaries
filename | sha256 hash
——– | ———–
[yyy-linux-amd64.tar.gz](https://storage.xxx.com/yyy-release/release/v0.1.03/yyy-linux-amd64.tar.gz) | `fef041e9cbe5bcf8fd708f81ee2e2783429af1ab9cfb151d645ef9be96e19b73`
[yyy-linux-arm.tar.gz](https://storage.xxx.com/yyy-release/release/v0.1.03/yyy-linux-arm.tar.gz) | `ce02d7bcd75c31db4f7b9922c19ea2a3312b0ba579b0dcd96b279b661eca18a8`
## Changes since v0.1.02
### Other notable changes
* 用户登录修复 ([#34524](https://xxx.xxx.xx.xx/yyy/yyy/issues/34524), [@zhaojg](https://xxx.xxx.xx.xx/122))
# v0.1.02
[Documentation](https://xxx.xxx.xx.xx/master/docs/) & [Examples](https://xxx.xxx.xx.xx/release-0.1/examples/)
## Downloads for v0.1.02
### tar ball
filename | sha256 hash
——– | ———–
[yyy.tar.gz](https://storage.xxx.com/yyy-release/release/v0.1.02/yyy.tar.gz) | `53db157923c17fa7a0addb3e4dfe7d1b9194b9266a87d371a251d5bb790a1832`
[yyy-src.tar.gz](https://storage.xxx.com/yyy-release/release/v0.1.02/yyy-src.tar.gz) | `e6e46831706743d8263581d0575507cf5ffc265096d22e5e84cf1c3ae925db5e`
### binaries
filename | sha256 hash
——– | ———–
[yyy-linux-amd64.tar.gz](https://storage.xxx.com/yyy-release/release/v0.1.02/yyy-linux-amd64.tar.gz) | `fef041e9cbe5bcf8fd708f81ee2e2783429af1ab9cfb151d645ef9be96e19b73`
[yyy-linux-arm.tar.gz](https://storage.xxx.com/yyy-release/release/v0.1.02/yyy-linux-arm.tar.gz) | `ce02d7bcd75c31db4f7b9922c19ea2a3312b0ba579b0dcd96b279b661eca18a8`
## Changes since v0.1.01
### Other notable changes
* 支持websocket功能 ([#34516](https://xxx.xxx.xx.xx/yyy/yyy/issues/34516), [@zhaojg](https://xxx.xxx.xx.xx/122))
### Known Issues
* 加密算法需支持国密,等待统一选型
# v0.1.01
[Documentation](https://xxx.xxx.xx.xx/master/docs/) & [Examples](https://xxx.xxx.xx.xx/release-0.1/examples/)
## Downloads for v0.1.01
binary | sha1 hash | md5 hash
—— | ——— | ——–
[yyy.tar.gz](https://storage.xxx.com/yyy-release/release/v0.1.01/yyy.tar.gz) | `52dd998e1191f464f581a9b87017d70ce0b058d9` | `c0ce9e6150e9d7a19455db82f3318b4c`
## Changes since v0.1.01
### Major Themes
* 用户注册。支持用户注册,需绑定手机号,并以短信验证。
Kubelet supports 100 pods per node with 4x reduced system overhead.
* 个人钱包管理。
– 支持个人钱包的余额查询
– 支持个人浅薄的消费记录查询
* 支持移动App(Android) 支持用户可以通过移动App(Android)使用系统服务。
### Other notable changes
* 支持nginx的日志按天滚动生成
* 调整mybatis的连接参数
### Experimental Features
* 引入restTemple模块访问第三方服务
* 引入lettuce框架访问redis
### Action required
* 建议使用Oracle Hotspot JDK 1.8及以上
* 建议使用IntelliJ IDEA开发
* 建议使用lombok插件
初始化用户及权限
若仓库组和仓库均设置用户及权限,则gitlab会自动使用权限最高的设置。

在仓库组yyygrp下创建全局的用户及权限。

gitlab → Groups → Your groups → yyygrp → Members

权限[3]分配如下:

架构师 Owner

开发经理 Master/Maintainer

开发人员 Developer

测试人员 Reporter

gitlab支持人员 Reporter

合作者 Reporter

在仓库yyy_back下创建个性化的用户及权限。

Gitlab → Projects → yyy_back → Settings → Members

调整master分支策略
Gitlab → Projects → yyy_back → Settings → Protected Branches

填写要点:

Branch

master

Allowed to merge

Masters/Maintainers

Allowed to push

No one

创建develop分支
从master分支上创建develop分支

Gitlab → Projects → yyy_back → Repository → Branches → New branch

填写要点:

Branch name

develop

Create from

master

调整分支策略

Gitlab → Projects → yyy_back → Settings → Protected Branches

填写要点:

Branch

develop

Allowed to merge

Masters/Maintainers

Allowed to push

No one

创建release分支
从master分支上创建release分支

Gitlab → Projects → yyy_back → Repository → Branches → New branch

填写要点:

Branch name

release

Create from

master

调整分支策略

Gitlab → Projects → yyy_back → Settings → Protected Branches

填写要点:

Branch

release

Allowed to merge

Masters/Maintainers

Allowed to push

No one

分解任务
在项目管理工具中,创建WBS,粒度分解到KC级,即对应为feature。

feature格式:

feature: 居民用户登录/residentLogin
制定版本
在项目管理工具中,依据项目计划,规划产品版本,并对应feature。

版本格式:0.1.01

分配任务
通过第三方平台(待定)将feature任务分配至开发人员。

一般为需求Feature或者Bugfix,描述如下:

## 任务类型: feature/bugfix
## 任务来源:架构师/开发经理/需求人员/测试人员
## 需求人员:
## 版本: 0.1.01
## feature中文名称: feature时需填写
## feature英文名称: feature时可不填
## bugfix: bugfix时需填写
## hotfix: hotfix时需填写
## 关联的需求或Bug的地址: 请提供链接地址
## 需求或bug描述:
示例:

## 任务类型: feature
## 任务来源:zhaojg
## 需求人员:
## 版本: 0.1.01
## feature中文名称: 居民用户登录
## feature英文名称: residentLogin
## bugfix:
## hotfix:
## 关联的需求或Bug的地址: http://xxx.xxx.xx.xx/docs/prd.doc
## 需求或bug描述:
完成居民用户的登录功能,居民用户表为resident
查看带有WIP的MR,评估进度
Gitlab → 右上方图标(Merge Requests) → WIP: Feature/0.1.01/residentLogin

查看MR的详情,如Discussion、Commits、Changes

代码评审,接收MR
在开发人员移除”WIP”后,可代码评审,接收MR。

Gitlab → 右上方图标(Merge Requests) → Feature/0.1.01/residentLogin → 代码评审 → 点击Merge按钮

Merge前,开发人员可能会继续修改此MR。

拉取master,合并至develop分支,解决冲突
此步骤理论上不会产生冲突,只是以防万一。

IDEA方式
转到develop分支上,从master拉代码,进行merge

Git快捷 → develop → checkout

VCS → Git → Pull… → 选择origin/master → Pull

git方式
git pull origin master
git push
维护版本信息
创建一个版本维护分支
从develop分支中拉出一个新的版本维护分支。

Gitlab → project → Repository → Branches → New branch

填写要点:

Branch name: feature/0.1.01/changelog

Create from: develop

创建一个合并请求MR,并设置为WIP
Gitlab → yyy_back → Merge Requests → Merge Requests → New Merge Request

填写要点:

Title

WIP: feature/0.1.01/changelog

Description

版本信息维护

Assignee

架构师

Source branch

feature/0.1.01/changelog

Target branch

develop

MR的提交信息模板如下,即在任务信息的基础上扩充,复制即可

## 任务类型: feature
## 任务来源:架构师
## 需求人员: 架构师
## 版本: 0.1.01
## feature中文名称: 版本信息维护
## feature英文名称: changelog
## 关联的需求或Bug的地址:
## 需求或bug描述: 维护版本信息
## 本次合并实现了什么:
更新了版本信息
## 提交者自测列表(开发人员编写,完成则为[x])
– [ ] 是否为一次完整的提交或一次完整的bug修改
– [ ] 是否完成自测
## 代码评审列表(架构师/开发经理编写,完成则为[x])
– [ ] 是否完成代码审查职责
维护以下文件内容
切换至feature/0.1.01/changelog分支,维护以下内容并提交。

README.md

CODE-OF-CONDUCT.md

SUPPORT.md

CHANGELOG.md

将feature分支合并到develop分支,并提交MR(移除WIP)
Gitlab → project → Merge Requests → Eidt Merge Request → 修改MR描述中开发人员编写部分 → 移除Title中的WIP → Save change

接受MR
Gitlab → 右上方图标(Merge Requests) → feature/0.1.01/changelog → 代码评审 → 点击Merge按钮

注意查看 Request to merge feature/0.1.01/changelog into develop

建立版本-alpha版
在feature全部开发完成以及维护好版本信息后,可在develop上建立版本。

打tag
tag是打在最近的一次Commit记录上的,即changelog的提交之上的。

Gitlab → yyy_back → Repository → Tags → New tag

填写要点:

Tag name

v0.1.01-alpha

Create from

develop

Release notes

aplha版本

develop分支下的bugfix
在develop分支的测试过程中,若发现bug,则可以由架构师或测试人员通过第三方平台(待定)将bugfix任务分配至开发人员。开发人员在创建MR后,会指定架构师,以供其了解进度。

一般为需求Feature或者Bugfix,描述如下:

## 任务类型: feature/bugfix
## 任务来源:架构师/开发经理/需求人员/测试人员
## 需求人员:
## 版本: 0.1.01
## feature中文名称: feature时需填写
## feature英文名称: feature时可不填
## bugfix: bugfix时需填写
## hotfix: hotfix时需填写
## 关联的需求或Bug的地址: 请提供链接地址
## 需求或bug描述:
示例:

## 任务类型: bugfix
## 任务来源:zhaojg
## 需求人员:
## 版本: 0.1.01
## feature中文名称:
## feature英文名称:
## bugfix: 验证码校验失败/b123
## hotfix:
## 关联的需求或Bug的地址: http://xxx.xxx.xx.xx/bugfix/b123
## 需求或bug描述:
验证码在90秒后校验失败,应为成功。
建立版本-beta版本
在develop分支测试通过且全部bugfix后,可在develop上再次建立版本。

打tag
Gitlab → yyy_back → Repository → Tags → New tag

填写要点:

Tag name

v0.1.01-beta

Create from

develop

Release notes

beta版本

将develop分支合并至release分支,发版
将develop合并至release分支,测试人员进行回归测试。

创建MR
Gitlab → yyy_back → Repository → Branches → 选择develop分支的Merge Request

填写要点:

Title

Merge branch develop into release for v0.1.01-beta

Description

beta版本

Assignee

架构师

Source branch

develop

Target branch

release

接受MR
Gitlab → 右上方图标(Merge Requests) → Merge branch develop into release for v0.1.01-beta → 代码评审 → 点击Merge按钮

注意查看 Request to merge develop into release

release分支下的bugfix
在release的测试过程中,若发现bug,则可以由架构师或测试人员通过第三方平台(待定)将bugfix任务分配至开发人员。开发人员在创建MR后,会指定架构师,以供其了解进度。

一般为需求Feature或者Bugfix,描述如下:

## 任务类型: feature/bugfix
## 任务来源:架构师/开发经理/需求人员/测试人员
## 需求人员:
## 版本: 0.1.01
## feature中文名称: feature时需填写
## feature英文名称: feature时可不填
## bugfix: bugfix时需填写
## hotfix: hotfix时需填写
## 关联的需求或Bug的地址: 请提供链接地址
## 需求或bug描述:
示例:

## 任务类型: bugfix
## 任务来源:zhaojg
## 需求人员:
## 版本: 0.1.01
## feature中文名称:
## feature英文名称:
## bugfix: 验证码校验失败/b123
## hotfix:
## 关联的需求或Bug的地址: http://xxx.xxx.xx.xx/bugfix/b123
## 需求或bug描述:
验证码在90秒后校验失败,应为成功。
建立版本-ga版本
在release分支测试通过且全部bugfix后,可在release上再次建立版本。

打tag
Gitlab → yyy_back → Repository → Tags → New tag

填写要点:

Tag name

v0.1.01-ga

Create from

release

Release notes

ga版本

将release分支合并至develop分支
为同步release分支上的bugfix,将release分支合并至develop分支。

创建MR
Gitlab → yyy_back → Repository → Branches → 选择release分支的Merge Request

填写要点:

Title

Merge branch release into develop for v0.1.01-ga

Description

ga版本

Assignee

架构师

Source branch

release

Target branch

develop

接受MR
Gitlab → 右上方图标(Merge Requests) → Merge branch release into develop for v0.1.01-ga → 代码评审 → 点击Merge按钮

注意查看 Request to merge release into develop

将release分支合并至master分支,版本稳定
在release的版本稳定期(3日)后,将release分支合并至master分支。

创建MR
Gitlab → yyy_back → Repository → Branches → 选择release分支的Merge Request

填写要点:

Title

Merge branch release into master for v0.1.01-ga

Description

ga版本

Assignee

架构师

Source branch

release

Target branch

master

接受MR
Gitlab → 右上方图标(Merge Requests) → Merge branch release into master for v0.1.01-ga → 代码评审 → 点击Merge按钮

注意查看 Request to merge release into master

创建tag
此处,理论上,v0.1.01 和 v0.1.01-ga 应该在一处commit id上。可以合并使用,但个人觉得分别设置后更符合项目管理风格。

Gitlab → yyy_back → Repository → Tags → New tag

填写要点:

Tag name

v0.1.01

Create from

master

Release notes

发布版本

hotfix
在生产环境下,发现系统的紧急需求或bug,需要线上热修复,则需要构建线上热修复分支。

制定补丁版本
在项目管理工具中,依据项目计划,规划产品补丁版本,并对应hotfix。

版本格式:0.1.01.1

创建hotfix任务
由架构师或测试人员通过第三方平台(待定)将hotfix任务分配至开发人员。

一般为需求Feature或者Hotfix,描述如下:

## 任务类型: feature/bugfix
## 任务来源:架构师/开发经理/需求人员/测试人员
## 需求人员:
## 版本: 0.1.01
## feature中文名称: feature时需填写
## feature英文名称: feature时可不填
## bugfix: bugfix时需填写
## hotfix: hotfix时需填写
## 关联的需求或Bug的地址: 请提供链接地址
## 需求或bug描述:
示例:

## 任务类型: bugfix
## 任务来源:zhaojg
## 需求人员:
## 版本: 0.1.01.1
## feature中文名称:
## feature英文名称:
## bugfix:
## hotfix: 手机号码不支持171开头/b130
## 关联的需求或Bug的地址: http://xxx.xxx.xx.xx/bugfix/b130
## 需求或bug描述:
手机号码校验在遇到171开头的显示校验失败,应为成功。
## 本次合并实现了什么:
## 提交者自测列表(开发人员编写,完成则为[x])
– [ ] 是否为一次完整的提交或一次完整的bug修改
– [ ] 是否完成自测
## 代码评审列表(架构师/开发经理编写,完成则为[x])
– [ ] 是否完成代码审查职责
拉取master,创建hotfix分支
hotfix分支名称

需求开发任务

分支名称为:hotfix/版本号/功能名称

示例: hotfix/0.1.01.1/residentLogin

bugfix任务

分支名称为:hotfix/版本号/b+#Id

示例:hotfix/0.1.01.1/b130

从master分支上创建hotfix分支

Gitlab → Projects → yyy_back → Repository → Branches → New branch

填写要点:

Branch name

hotfix/0.1.01.1/b130

Create from

master

创建MR,并设置为WIP
Gitlab → yyy_back → Repository → Branches → 选择hotfix/0.1.01.1/b130分支的Merge Request

填写要点:

Title

WIP: hotfix/0.1.01.1/b130

Description

## 任务类型: bugfix
## 任务来源:zhaojg
## 需求人员:
## 版本: 0.1.01.1
## feature中文名称:
## feature英文名称:
## bugfix:
## hotfix: 手机号码不支持171开头/b130
## 关联的需求或Bug的地址: http://xxx.xxx.xx.xx/bugfix/b130
## 需求或bug描述:
手机号码校验在遇到171开头的显示校验失败,应为成功。
## 本次合并实现了什么:
## 提交者自测列表(开发人员编写,完成则为[x])
– [ ] 是否为一次完整的提交或一次完整的bug修改
– [ ] 是否完成自测
## 代码评审列表(架构师/开发经理编写,完成则为[x])
– [ ] 是否完成代码审查职责
Assignee

架构师

Source branch

hotfix/0.1.01.1/b130

Target branch

master

代码开发
检出代码,完成hotfix。

测试
测试人员视现场情况进行测试。

提交MR(移除WIP)
Gitlab → project → Merge Requests → Eidt Merge Request → 修改MR描述中开发人员编写部分 → 移除Title中的WIP → Save change

接受MR
Gitlab → 右上方图标(Merge Requests) → hotfix/0.1.01.1/b130 → 代码评审 → 点击Merge按钮

注意查看 Request to merge hotfix/0.1.01.1/b130 into master

创建tag
Gitlab → yyy_back → Repository → Tags → New tag

填写要点:

Tag name

v0.1.01.1

Create from

master

Release notes

hotfix版本

拉取master,合并至develop分支,同步hotfix
IDEA方式
转到develop分支上,从master拉代码,进行merge

Git快捷 → develop → checkout

VCS → Git → Pull… → 选择origin/master → Pull

git方式
git pull origin master
git push
删除已merged分支
版本稳定后,可删除已merged分支。

Gitlab → project → Repository → Branches → Delete merged branches

拉取指定版本
依据tag进行拉取。

# 以develop的v0.1.01版本创建一个新分支
git checkout -b develop v0.1.01
回退至指定版本
这里所示的回退是指整体分支回退到某一版本,即抛弃在某一版本后的操作,而不是拉取某一版本。

通过查找tag获得commit id,然后重置commit id实现回退。

git branch
git checkout develop
git tag
git show v0.1.01
# commit fb479960c0cec5549463ae123d70bdd72ccf6be7
git reset –hard fb479960c0cec5549463ae123d70bdd72ccf6be7
git log
git reflog
git status
# 取消develop分支的保护
git push -f origin develop
# 恢复develop分支的保护
fork项目
在进行多客户并行开发时,可能会需要此方法。

fork项目
创建新客户的group
新的group为: yyy-zzgrp

fork项目
Gitlab → yyy_back → Project → Details → Fork → 选择Namespace即group为yyy-zzgrp

之后可两个项目独立开发。若选择的Namespace与原项目相同,则两个项目会名字相同,但project id不同。

保持同步,获取原项目改动
利用local的环境,拉取原项目,解决本地冲突,提交至新项目。

git clone https://xxx.xxx.xx.xx/yyy-zzgrp/yyy_back.git
cd yyy_back
git remote add yyy_back https://xxx.xxx.xx.xx/yyygrp/yyy_back.git
git fetch yyy_back
git merge yyy_back/master
# 创建MR提交
# git push origin master
参考文献
[1] Semantic Versioning 2.0.0 | Semantic Versioning , https://semver.org

[2] Gitlab版本管理开发规范

[3] Permissions_GitLab https://docs.gitlab.com/ee/user/permissions.html

喜欢 (0)
关于作者: