- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 单元测试技术方案.pdf
- junit+mockito单元测试基本用法.pdf
- 高并发编程技术点.pdf
- sentinel方案(带控制台dashboard).pdf
- 动态感知Nacos服务地址和ribbon远程调用优雅上下线.pdf
- 利用logId追踪请求链路日志 V1.0.pdf
- DDD领域驱动设计.pdf
- 设计模式手册.pdf
- Apifox新手快速上手.pdf
- 群发短信去重方案.pdf
- 中国国家标准 GB/T 4214.17-2024家用和类似用途电器噪声测试方法 干式清洁机器人的特殊要求.pdf
- GB/T 4214.17-2024家用和类似用途电器噪声测试方法 干式清洁机器人的特殊要求.pdf
- 《GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法》.pdf
- GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法.pdf
- 中国国家标准 GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法.pdf
- 中国国家标准 GB/T 32455-2024航天术语 运输系统.pdf
- GB/T 32455-2024航天术语 运输系统.pdf
- 《GB/T 32455-2024航天术语 运输系统》.pdf
- GB/T 44369-2024用于技术设计的人体运动生物力学测量基础项目.pdf
- 中国国家标准 GB/T 44369-2024用于技术设计的人体运动生物力学测量基础项目.pdf
精通系统架构设计,能够设计可扩展、高效、安全的系统。 面对复杂问题时,能够运用创造性思维找到解决方案。 带领团队落地多个大型项目。
文档评论(0)