gitlab
项目管理流程
注意事项
- 任何项目开始即创建对应项目仓库;
-
issues
应覆盖项目从原始需求->项目结题过程中各环节,记录问题、解决思路等;
- 及时整理,及时归档;
流程图
git常用命令图
创建项目团队
注意事项
- 正式项目应所属团队,对于新项目,先创建团队,再创建项目;
建立新团队
-
选择团队Groups -> Explore groups -> Your groups
创建子团队New Project -> New subgroup
-
直接创建团队 Groups -> Your groups -> New Group
-
填写团队信息
创建项目仓库
注意事项
- 新建项目时,注意项目名中不要出现中文;
- 正式项目应所属于项目团队;
- 项目描述应尽量简洁明了;
- 内部开发项目的可见性应为Private;
建立项目
通过更改Project slug
修改所属团队
在子团队下创建项目
- 打开子团队页面
- 创建项目
New Project
- 填写项目信息
编辑项目
构建项目代码目录
注意事项
- gitlab作为代码管理仓库,目录应仅包含必要的程序及示例,善用.gitignore进行过滤;
- 代码目录层级清晰,命名能反映其中内容,例如:
src
、examples
、models
、asset(image...)
;
- 在初次保存提交前,应编写好
readme.md
文件,其中应包含如下内容:
- 项目名称
- 项目说明
- 代码结构说明(可使用
tree
命令生成代码树)
- 运行(
Quick Start
):包含运行依赖、运行步骤或使用说明
-
Changelog
:版本历史说明
- 其它说明文档(例如:FQA,接口说明,注意事项,错误码说明等)
- 在需要进行说明的子目录中,添加
readme.md
;
.gitignore
配置全局git
信息
- 安装Git后,打开终端,
Ctrl + Alt + T
(Linux) 或 Git bash here
(Windows)。
git config --global user.name "Your name"
git config --global user.email "Your email"
- 通过
git config --list
查看git全局信息配置
推送项目仓库
方式一: 创建新的项目仓库并推送
- 本地创建新的文件夹,在其路径下克隆.git文件
git clone git@xxx.git
- 创建README文件
touch README.md
- 跟踪新增文件
git add README.md
- 保存修改
git commit -m "add README.md"
- 提交修改至远程仓库
git push -u origin master
方式二: 推送现有的文件
- 切换至现有文件目录
cd existing folder
- 初始化git配置
git init
- 连接远程仓库
git remote add origin git@xxx.git
- 跟踪目录下所有文件
git add .
- 保存修改
git commit -m "Initial commit"
- 提交修改至远程仓库
git push -u origin master
方式三: 推送现有的项目仓库
- 切换至现有项目仓库
cd existing repo
- 初始化git配置
git init
- 连接远程仓库
git remote add origin git@xxx.git
- 提交修改至远程仓库
git push -u origin --all
- 提交版本信息至远程仓库
git push -u origin --tags
利用issues
协作开发
注意事项
-
issues
应包含项目全周期中遇到的问题和解决的过程;
- 项目开始即可创建里程碑和
issue
;
- 按照项目需要,按照规范创建
issues
的相关label
;
创建里程碑
创建labels
-
选择labels
: Issues-> labels -> New label
-
基础labels
: 按照任务所处的阶段大体分为5个基础label
- 需求: Demand
#0033CC
- 设计: Design
#69D100
- 开发: Develop
#8E44AD
- 测试: Test
#CC0033
- 部署: Deploy
#AD8D43
-
自定义label
: 项目技术负责人可以根据issue
的实际内容进行label review, 新建、修改labels,为issue增加labels。一个issue可以有很多标签,当issue较多时便于搜索和管理。
创建issues
-
选择项目,创建issue
;
-
Issues -> New issue -> 填写issue详情 -> Submit issue
-
可通过建立issue
指派任务,并选择时间节点、里程碑和标签信息。项目成员在创建issue
后,请在评论区@
项目技术负责人,对issue
的labels
、milestone
、Due Date
进行确认。
-
issue
建立后,相关项目人员可在该issue
下,通过markdown编辑评论。
代码开发与提交
注意事项
- 开发人员在开发过程中应将代码提交至自己相关分支下,而不应该提交到
master
分支下。为保证这点,项目的权限分配就应限制除了项目负责人的开发权限为maintainer
外,其他开发成员的权限均为developer
。
- 提交到
master
分支的代码应进行了充分的测试,确保其可用性。
- 代码提交前,要先拉取仓库的最新代码,并解决冲突,否则可能会造成混乱。
- 代码
commit
时,应使用正确的格式,在commit
信息的开头应使用如下标签,使你的提交内容更清晰。feature # 新增功能
update # 更新功能
fix # 修复漏洞
delete # 删除内容
- 代码
commit
时,可在commit
的内容中添加issue
的编号,将issue
与commit
内容绑定。
- 若你的项目仓库中需要包含其他的项目仓库,可使用子模块功能。合理使用子模块可以促成代码的分支,提高各项目成员开发效率。
创建开发分支
本地创建开发分支,上传至远端仓库
- 首先需要克隆文件到本地,初始化git配置,连接远程仓库(见第3节)
- 查看本地分支
git branch
- 查看远程分支
git branch -r
- 创建本地分支(不切换)
git branch [name]
- 切换本地分支
git checkout [name]
- 创建并切换到本地分支
git checkout -b newbranch
- 删除分支
git branch -d [name]
(-d选项只能删除已经参与了合并的分支,强制删除请使用-D)
- 将名称为[name]的分支与当前分支合并
git merge [name]
- 创建远程分支(本地分支push到远程)
git push origin [name]
- 删除远程分支
git push origin :heads/[name]
issue
上创建开发分支
gitlab
上创建开发分支
代码提交
- 拉取最新代码
git pull
,解决冲突(若存在)
- 保存修改
git commit -m "update: information"
- 保存修改并绑定issue
git commit -m "fix: #issue_ident_1 #issue_ident_2"
- 提交修改至远程仓库分支
git push origin newbranch
- 提交修改至远程仓库主分支
git push origin master
- 提交修改至远程仓库,同时创建新分支
git push origin newbranch:newbranch
子模块
分支合并
注意事项
- 若希望确保请求在完工后再合并,开发人员应在
merge requests
的标题开头加入WIP:
记号或者在评论区输入/wip
。加入此记号后,除非项目负责人点击了Resolve WIP status
,否则请求将无法被合并。
- 开发人员可以在
merge requests
的描述中绑定相关issue
(如:fix/close #1),支持批量操作。
- 合并请求的审查与操作应由项目负责人负责,如有异议应及时通知相关开发人员。
开发人员发起合并请求
- 创建合并请求
Merge Requests -> Create merge request
项目技术负责人审核代码,进行合并
完成里程碑节点
注意事项
-
当项目完成一个里程碑节点时,应及时使用标签标记。标记的版本必须保证经过了充分测试,能够稳定运行。这一操作通常由测试人员完成。
-
标签描述应遵循打标规则。通常情况下,描述中必须写清当前的版本号,以及版本更新内容。
-
release
版本必须从对应tag
标签中输出;
-
发布版本中需要添加日期信息; VX.Y.Z_YYMMDDhhmmss
,例如V1.0.1_20211104
描述项 |
说明 |
必须 |
V |
版本号起始位 |
True |
X |
初始值为1,主版本号,1位数字 |
True |
Y |
初始值为0,次版本号,1位数字 |
True |
X |
初始值为0,修订号,1位数字 |
True |
YYMMDD |
日期,年月日 |
False |
hhmmss |
可选,24h制 |
False |
a. 主版本号,一般不变动,除非为全新开发,或完全重构;
b. 次版本号,比较大的功能修改,后面更新也只针对新版本,的功能性新增;
c. 修订号,小的修改,bug修复;
标签操作
- 创建本地标签
git tag <tagName>
- 为特定提交打标签
git tag -a v1.0 [SHA] -m "v1.0: information"
- 推送标签
git push origin :<tagName>
- 推送所有标签
git push origin --tags
- 查看本地某个标签的详细信息
git show <tagName>
- 查看本地所有标签
git tag
或git tag -l
- 查看远程所有标签
git ls-remote --tags origin
- 本地标签删除
git tag -d <tagName>
- 远程标签删除
git push origin :refs/tags/<tagName>
- 检出标签
git checkout -b <branchName> <tagName>
- 切换标签
git checkout <tagname>
完成开发后,输出上线版本并备份(待完善)
注意事项
- 详见Gitlab官方发布的Release API
整理开发相关文档
注意事项
-
项目结项后,为保证资料的完整性,应及时整理项目资料,并上传项目代码仓库;
-
对于比较大的文档文件,外网上传至百度网盘公共账号,内网上传至文档云,并在说明文档中提供链接;
-
按如下内容检测项目文档的完整性:
- 项目需求相关文档
- 项目设计相关文档
- 代码说明文档
- 部署相关说明文档
- 运维文档
归档
注意事项
- 项目结项后,应将代码仓库归档。归档后,该仓库将默认不可见。可以通过在Gitlab修改显示设置浏览归档仓库,或取消归档属性。
- 归档时,为便于管理,应根据即时人员信息,修改项目成员内容。
项目归档
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)