1 Star 0 Fork 3

ChanelCheung/GitLab工作流

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
lijin- lijin 1.0.5 dcb06fa 4年前
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

GitLab工作流

v1.0.2

前言

Git与其它版本控制系统的差异:

  • 直接记录快照,而非差异比较
  • 近乎所有操作都是本地执行
  • 保证完整性
  • 一般只添加数据

Git有三种状态,你的文件可能处于其中之一:已提交(committed)已修改(modified)已暂存(staged)
已提交表示数据已经安全的保存在本地数据库中。
已修改表示修改了文件,但还没保存到数据库中。
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

三个工作区域的概念:Git仓库工作目录以及暂存区域
Git仓库是Git用来保存项目的元数据和对象数据库的地方。 这是Git中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
工作目录是对项目的某个版本独立提取出来的内容。 这些从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在Git仓库中。
image

如果本文读者还没使用过git,对git的基本概念和命令不是很熟悉,可以参考官方中文教程:Pro Git

GitLab工作流提供了一种简单、透明和有效的git工作方式,并与问题跟踪系统相结合。
其最大原则叫做上游优先(upsteam first),即只存在一个主分支master,它是所有其他分支的上游。只有上游分支采纳的代码变化,才能应用到其他分支。

image

官方文档:Introduction to GitLab Flow

环境部署

部署GitLab社区版

准备一台服务器,部署GitLab社区版

参考手册:GitLab Community Edition

安装Visual Studio Code(可选)

参考手册:Visual Studio Code

安装Git

参考手册:Git

GitLab用户设置

输入初始密码

image

首次登录需更新密码

image

使用更新后的密码登录

image

设置中文界面

image
image

刷新界面

image

运行开始菜单中的Git Bash,打开Git命令行窗口

# 创建SSH密钥id_rsa,无密码
ssh-keygen -q -b 2048 -t rsa -C "lijin@nantian.com.cn" -f ~/.ssh/id_rsa -N ""
# 复制SSH密钥至剪贴板
cat ~/.ssh/id_rsa.pub | clip

设置SSH密钥,使用Ctrl + v粘贴

image
image

项目经理

创建群组

image
image
image
image

添加成员

image
image

创建项目

在工作区目录上右键选择Git Bash Here,打开Git命令行窗口

# 初始化本地仓库
git init smart-bank
# 切换至本地仓库目录,当前分支为master(用于开发环境)
cd smart-bank
# 定义LFS文件类型
git lfs track "*.7z" "*.bin" "*.class" "*.db" "*.dll" "*.doc" "*.exe" \
"*.fdp" "*.gif" "*.ico" "*.iso" "*.jar" "*.jpg" "*.lib" "*.msi" \
"*.ocx" "*.png" "*.pdf" "*.rar" "*.rpm" "*.sfx" "*.swf" "*.sys" \
"*.vsix" "*.wav" "*.zip"
# 创建忽略文件列表
echo ".vscode" > .gitignore
echo "Desktop.ini" >> .gitignore
echo "ehthumbs.db" >> .gitignore
echo "Thumbs.db" >> .gitignore
echo "*.bak" >> .gitignore
echo "*.log" >> .gitignore
echo "*.tmp" >> .gitignore
# 创建自述文件
touch README.md
# 暂存全部变更
git add -A
# 提交至本地仓库
git commit -m "init"
# 创建并切换分支SIT(用于集成环境)
git checkout -b SIT
# 创建并切换分支(用于验证环境)
git checkout -b UAT
# 创建并切换分支(用于生产环境)
git checkout -b PRD
# 切换回开发分支(用于开发环境)
git checkout master
# 添加远程仓库
git remote add origin git@192.168.252.129:wuhan/smart-bank.git
# 开启LFS锁验证
git config lfs.https://192.168.252.129/wuhan/smart-bank.git/info/lfs.locksverify true
# 推送所有分支至远程仓库,首次连接需要输入'yes'确认
git push -u --all origin
The authenticity of host '192.168.252.129 (192.168.252.129)' can't be established.
ECDSA key fingerprint is SHA256:+1txcYH71lDd2/I3gtNN7dHWFOPWHBOcC58RYz82EkY.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.252.129' (ECDSA) to the list of known hosts.
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 491 bytes | 491.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0)
remote:
remote: The private project wuhan/smart-bank was successfully created.
remote:
remote: To configure the remote, run:
remote:   git remote add origin git@192.168.252.129:wuhan/smart-bank.git
remote:
remote: To view the project, visit:
remote:   http://192.168.252.129/wuhan/smart-bank
remote:
To 192.168.252.129:wuhan/smart-bank.git
 * [new branch]      PRD -> PRD
 * [new branch]      SIT -> SIT
 * [new branch]      UAT -> UAT
 * [new branch]      master -> master
Branch 'PRD' set up to track remote branch 'PRD' from 'origin'.
Branch 'SIT' set up to track remote branch 'SIT' from 'origin'.
Branch 'UAT' set up to track remote branch 'UAT' from 'origin'.
Branch 'master' set up to track remote branch 'master' from 'origin'.
# 设置远程仓库默认分支
git remote set-head origin master
# 显示分支(包括远程分支)
git branch -a
  PRD
  SIT
  UAT
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/PRD
  remotes/origin/SIT
  remotes/origin/UAT
  remotes/origin/master

* master为当前本地分支
remotes/origin/HEAD为远程默认分支

配置项目

访问远程仓库https://192.168.252.129/wuhan/smart-bank

image

设置项目名称、描述及头像

image

设置保护分支SITUATPRD

image
image

创建里程碑(需求)

根据需求,创建里程碑

image
image
image

创建议题(任务)

分派任务,创建议题

image
image
image
image

处理合并请求

选择要处理的合并请求

image

Web IDE中审阅

image
image

审核通过后合并

image

合并后的分支图

image

发布至集成环境/验证环境/生产环境

单元测试通过后,将版本发布至SIT集成环境

# 拉取远程分支
git pull --all
# 切换至集成环境
git checkout SIT
# 合并
git merge master
# 推送至远程仓库
git push

集成测试通过后,将版本发布至UAT验证环境(无验证环境可略过)

# 拉取远程分支
git pull --all
# 切换至验证环境
git checkout UAT
# 合并
git merge SIT
# 推送至远程仓库
git push

所有测试通过后,将版本发布至PRD生产环境,并创建标签

# 拉取远程分支
git pull --all
# 切换至生产环境
git checkout PRD
# 合并
git merge UAT
# 推送至远程仓库
git push
# 创建标签
git tag v1.0.0
# 推送标签至远程仓库
git push --tags

关闭里程碑(需求)

需求完成后,关闭里程碑

image

程序员

处理议题(任务)

收到议题后,将议题标记为处理中

image
image

拉取项目并创建分支

在工作区目录上右键选择Git Bash Here,打开Git命令行窗口

# 克隆远程仓库将拉取全部分支,首次连接需要输入yes确认
git clone git@192.168.252.129:wuhan/smart-bank.git
# 切换至本地仓库目录
cd smart-bank
# 当前分支默认为master,创建并切换分支
git checkout -b Interface-Design

也可只拉取项目指定分支

# 初始化本地仓库
git init smart-bank
# 切换至本地仓库目录
cd smart-bank
# 添加远程仓库
git remote add origin git@192.168.252.129:wuhan/smart-bank.git
# 拉取分支
git fetch origin master
# 创建并切换分支
git checkout -b Interface-Design origin/master

推送分支

开发完毕后,推送分支

# 推送前合并远程分支
git pull --rebase origin master
# 推送
git push -u origin Interface-Design

提交合并请求

image
image
image
image

删除分支

合并通过后,任务完成。删除分支

# 删除远程分支
git push origin --delete Interface-Design
# 删除本地分支
git branch -D Interface-Design

关闭议题(任务)

image

空文件

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ChanelCheung/gitlab-workflow.git
git@gitee.com:ChanelCheung/gitlab-workflow.git
ChanelCheung
gitlab-workflow
GitLab工作流
master

搜索帮助