GitLab服务如何高效集成Hooks.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

GitLabServerHooks

版本编号变更描述创建⽇期创建⼈

1.0.0初始版本2022年11⽉4号刘启浩

Git代码合并出现的问题

本地解决合并冲突

1.执⾏gitpull或gitmerge时产⽣冲突,在本地IDE解决代码冲突时,因冲突较多、冲突代码难以取

舍、冲突代码范⼤等原因,容易造成代码覆盖、代码丢失等问题

错误合并分⽀

1.在feature功能分⽀进⾏需求开发时,错误将dev/test分⽀合并到feature分⽀,导致feature分

⽀被污染

处理⽅案

本地解决合并冲突问题

1.本地合并代码时对不确定的部分与相应的开发⼈员确认

2.提交MR时对修改代码的上下⽂语义进⾏审查

错误合并分⽀问题

1.开发约束,分⽀合并限制,限制dev/test分⽀合并⾄其它分⽀

2.系统约束,在GitLab侧使⽤Server-SideHooks:pre-receive,添加执⾏脚本:在执⾏gitpush

时,获取本次push中的git信息,判断是否存在dev/test向当前分⽀(⾃⾝除外)合并的嫌疑,

如果有则进⾏阻断给出提⽰,否则给出⾃查提⽰、正常推送。

a.GitLab参考链接:/15.4/ee/administration/server_hooks.html

b.Git参考链接/book/en/v2/Customizing-Git-Git-Hooks

3.实现⽅式

a.获取gitpush的当前commit、基准commit、分⽀信息

b.获取基准commit-当前commit所有commit消息,对消息做关键字匹配,例如存在(Merge

branchfeatureintomaster)此类merge消息,如果匹配dev/test向其它分⽀合

并则阻断,否则给出⾃查提⽰

Merge-From-dev阻断.mp4

Post-Merge添加代码阻断.mp4

4.特殊场景

a.Gitfast-forward模式下,merge操作不会产⽣commit记录,mege过来的其它commit记录可

能不存在mergecommit,例如将devmerge到feature分⽀10条commit、触发了fast-

forward、此时没有当前merge的commit记录、merge过来的10条commit也不存在merge

commit记录,此场景下脚本⽆法匹配

b.merge操作产⽣commit记录,使⽤gitrebase命令,将分⽀重整,merge操作产⽣的commit

记录会被清理,此场景下脚本⽆法匹配

c.merge操作产⽣commit记录,主动修改commit消息,此场景下脚本⽆法匹配

Merge-Update-Commit.mp4

Post-Merge-Rebase.mp4

Post-Merge-Update-commit.mp4

Gitfast-forward模式

Merge-fast-forward.mp4

Merge-no-ff.mp4

脚本部署

脚本

pre-receive

2.83KB

Docker环境部署

1.在容器/var/opt/gitlab/gitaly⽬录(如果此⽬录再宿主机有映射,则在宿主机映射⽬

录),创建ustom_hooks/pre-reeive.d⽬录,将脚本放在此⽬录下,赋予执⾏权限

1#若⽬录⽆映射

2##容器内执⾏创建⽬录

3mkdir-pv/var/opt/gitlab/gitaly/ustom_hooks/pre-reeive.d

4##容器外执⾏复制脚本到指定⽬录

5dokerppre-reeive.sh[容器ID]:/var/opt/gitlab/gitaly/ustom_hooks/pre-reeive

6##容器内执⾏赋予脚本权限

7hmod+xp

文档评论(0)

易油科技首席架构师 + 关注
实名认证
服务提供商

精通系统架构设计,能够设计可扩展、高效、安全的系统。 面对复杂问题时,能够运用创造性思维找到解决方案。 带领团队落地多个大型项目。

1亿VIP精品文档

相关文档