掘金 后端 ( ) • 2024-04-18 16:28
1、GitLab安装教程
1.1、查看Linux系统版本

执行命令: cat /etc/redhat-release

CentOS Linux release 7.6.1810 (Core)
1.2、安装 curl,policycoreutils-python,openssh-server服务

执行命令: yum install -y curl policycoreutils-python openssh-server

image.png 如果出现如上图所示,则表示依赖服务安装成功

1.3、ssh服务设置开机自启并启动
// SSH服务设置成开机自启动
systemctl enable sshd
// 启动SSH服务
systemctl start sshd
1.4、开启防火墙,阿里云在控制台防火墙策略放开
systemctl start firewalld
或者service firewalld  start
1.5、添加http服务到firewalld

允许http服务通过, pemmanent表示永久生效,若不加–permanent系统下次启动后就会失效

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
1.6、安装Postfix以发送通知邮件,并将postfix服务设置成开机自启动

Linux centos 查看postfix是否已经安装,如果安装过,则无需安装,

rpm -qa |grep postfix

安装postfix命令:yum install postfix 设置postfix自启动命令:systemctl enable postfix 启动Postfix命令:systemctl start postfix

1.7、下载GitLab镜像源并安装gitlab服务

下载GitLab镜像源

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

安装GitLab服务

rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

可能会报错部分依赖问题,在rpm 语句后面加上 --force --nodeps,忽略依赖则可以 如果出现如下图所示:

image.png

1.8、修改GitLab配置文件

vim /etc/gitlab/gitlab.rb,编辑external_url 为gitlab服务器的ip加端口,例如:http://192.168.2.5:8081,保证防火墙开放对应端口;

image.png

修改之后执行如下命令

// 重置配置文件
gitlab-ctl reconfigure
// 重启gitlab服务
gitlab-ctl restart
1.9、访问GitLab

首次访问时,需要设置密码,设置完密码使用,使用默认账号登录(Centos 默认为root)

image.png

2、Git 代码分支规范
2.1 master分支(prd生产环境)

master 分支 (主分支、稳定分支,不能直接修改代码),用于部署生产环境的分支,确保master分支稳定性;master 分支一般由feature或hotfix分支合并,任何时间都不能直接修改代码;

2.2 release分支(stg预生产环境)

release分支用于预发布环境,与生产环境最接近,代码一般从feature、hotfix分支合并,有些企业内预生产与生产同一个数据库,通过测试组织做数据隔离,也有的企业是stg和prd不同数据库;

2.3 qa分支(qa测试环境)

qa分支一般用于开发人员经过自测通过后,达到提测条件时,将feature分支代码合并到qa分支,供测试人员使用,由测试管控,部分情况qa环境也用于外部联调,一般由测试管控;

2.4 dev分支(开发环境)

dev分支一般用于开发人员前后端联调使用,开发人员可以随时重启服务或者版本发布,管理比较宽松。

2.5 uat分支(uat环境)

uat分支主要用于uat环境,UAT环境,全称为User Acceptance Testing环境,主要用来进行用户验收测试,客户体验与验收、缺陷发现与修复、业务流程验证、用户培训与熟悉。

2.6 feature分支、hotfix分支

1、每一次需求迭代,从产品需求评审、技术设计评审之后,开始研发,通常都是基于master分支拉取一个feature分支用于开发,命名规范一般为feature/20240416_用户管理升级,开发完成后往dev、qa、release、master等分支合并; 2、hotfix分支,用于紧急修复线上bug问题,基于master分支拉取,命名规范为hotfix/20240416_修复导出用户问题,开发完之后往各个环境分支合并; 3、代码合并规范:feature、hotfix分支往dev、qa、release、master分支合并,dev、qa、release、master不可以往feature、hotfix合并,以及分支间不可以交叉合并。

3、Git commit注释规范

对于一般的 commit,我们往往不需要过为详尽的阐述,言简意赅即可,所以,请使用以下的格式:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

type(必须) 用于说明git commit的类别,只允许使用下面的标识:

feat:添加新特性 fix/to fix:产生 diff 并自动修复此问题。适合于一次提交直接修复问题 to:只产生 diff不 自动修复此问题。适合于多次提交。最终修复问题提交时使用 fix docs:仅仅修改了文档 style:仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑 refactor:代码重构,没有加新功能或者修复 bug perf:优化相关,比如提升性能、体验 test:增加测试用例 chore:改变构建流程、或者增加依赖库、工具等 test:增加测试 revert:回滚到上一个版本 merge:代码合并 sync:同步主线或分支的Bug; Git提交commit案例:fix(DAO):用户查询缺少username属性 feat(Controller):用户查询接口开发

4、Git 在idea中使用场景案例
4.1、idea中仓库配置

1、首先在git bash软件控制台执行命令 :将代码工程克隆到本地

image.png

git clone '仓库地址'

2、在idea中也可以配置多个仓库地址,有时候代码需要提交到多个地方,鼠标右键工程Git/Manage Remotes,配置新的仓库名称: image.png 3、配置完点击确认之后,会提示输入自己的git账号、密码,如果是ssh地址,要输入自己的ssh key;认证成功后就生效。 4、一些基本操作:git pull拉取远程代码,git push 本地代码推送到远程仓库等,详细的可以参考 https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/79054792 这一篇csdn的文档 5、可以在idea中直接操作,也可以通过idea的terminal中通过敲命令执行。

4.2、当代码没写完需要切分支该如何处理

很多时候我们在写代码过程中,代码没写完,因为某些原因需要切换分支,这个时候可能很多小伙伴会直接把代码提交了,但对于版本管理来说本次提交没什么意义,我们可以使用如下命令:

// 代码暂存
git stash
// 为本次暂存添加注释
git stash save '暂存一下'
// 查看暂存列表
git stash list
// 恢复暂存文件
git stash pop

使用的命令太多不好记忆,可以在idea操作,右键项目,点击Git,再点击Stash Changes image.png 填写暂存注释之后,点击Create Stash 完成暂存,就可以切换分支处理其他任务; image.png 当需要切换回来时,如下图所示,右键项目,点击Git/Unstash Changes,勾选Pop stash,再点击Pop Stash就恢复暂存前状态。 image.png

4.3、将其他分支部分提交合并到某个分支

合并分支有两种操作: 1、需要将A分支的所有代码变动 合并到B 分支,此时可以采用分支合并,可以直接merge; 2、只需要将A分支的几个改动 合并 到B 分支, 不需要全部合并(有些情况下整个分支合并冲突太多处理起来过于麻烦)。可以使用cherry pick . 操作说明:例如,有两个分支 分别为 test1分支和master分支,现要将test1分支的代码合并到master分支上,可按如下步骤, 1、首先我们要将我们自己test分支的代码提交到库中,然后切换到master分支;

image.png

2、通过showHistory 查看版本信息,在showHistory中的branch中查看test1分支的代码

可以通过查看每次提交的代码来选择合并,对有冲突的代码手动选择解决 最后再提交到master库中,

image.png 3、如果存在冲突,需要按照平时合并的方式处理冲突,如果没有冲突就会提示cherry-pick successful

4、最后记得push到远程仓库。

4.4、代码回退

如果在项目上线前,因为某些原因或者产品经理需求,让某个功能代码不上线,如果那个功能代码刚合到master分支,可以使用git revert功能, 操作步骤: 1、在idea中右键项目,依次点击Git/Show History显示提交记录日志

image.png

2、最后记得push代码到远程分支

以上经验都是笔者,结合工作经验总结,如果对您有帮助,请给个三连加关注支持,后续会定期持续化更新技术类知识和经验分享,感谢大家。 点击如下链接可以查看www.bilibili.com/video/BV1N1… 美丽的程序人生开通了个人的公众号,欢迎大家微信搜索美丽的程序人生,给个关注,后续会在公众号更新, 个人的GitHub地址:github.com/zhcyixin/zh… ,欢迎小伙伴克隆下载,如果对您有帮助麻烦给个stars。