当前位置: 首页 > wzjs >正文

网站开发实现电脑版和手机版的切换专业网站建设全包

网站开发实现电脑版和手机版的切换,专业网站建设全包,高端装修公司排名前十,网站特效代码上那找好Git技巧:Git Hook,自动触发,含实战分享 最近项目需要1个git合入时触发脚本的功能,使用Git Hook功能实现,总结如下: Git项目在路径:repo\.git\hooks下有很多文件,这些文件就是本地钩…

Git技巧:Git Hook,自动触发,含实战分享

最近项目需要1个git合入时触发脚本的功能,使用Git Hook功能实现,总结如下:

Git项目在路径:repo\.git\hooks下有很多文件,这些文件就是本地钩子。

概念

Git Hook(Git 钩子)是 Git 提供的生命周期事件回调机制,允许在 Git 操作的关键阶段(如提交、推送、合并等)自动执行自定义脚本(Shell/Python/Node.js 等)。根据作用范围,可分为客户端钩子(本地开发流程)和服务端钩子(远程仓库权限控制)。以下是最常见的 Git Hook 功能场景及典型用途:

我们可以通过钩子在某一时刻,触发想做的事情,例如:

  1. 提交前检查
  2. 提交信息校验
  3. 推送前验证
  4. 提交后自动化

分类:

  • 客户端钩子:仅在本地仓库触发,用于约束开发者的提交、推送等操作。
  • 服务端钩子:在 Git 服务器(如 GitLab、GitHub)触发,用于全局控制推送行为(如分支保护、自动化部署)。
钩子名称类型触发时机核心作用示例场景
pre-commit客户端钩子git commit 执行时,暂存文件后、提交信息输入前校验代码质量(格式、语法)、运行预测试,阻止不合格提交运行 ESLint 检查代码格式,若失败则终止提交。
prepare-commit-msg客户端钩子git commit 执行时,提交信息编辑器(如 Vim)打开前自动生成或修改提交信息模板(如填充任务号、分支名)从分支名(feature/JIRA-123)提取任务号,自动写入提交信息。
commit-msg客户端钩子git commit 执行时,用户输入提交信息后、提交最终确认前校验提交信息格式(如 Conventional Commits 规范)强制提交信息以 feat: fix: 等类型开头,否则终止提交。
post-commit客户端钩子git commit 提交成功后提交后的通知或辅助操作(如发送消息、生成文档)提交后通过 Slack 通知团队新提交的哈希值。
pre-push客户端钩子git push 执行前(远程推送前)检查远程分支状态、运行集成测试,阻止无效推送推送前运行单元测试,测试失败则终止推送。
post-merge客户端钩子git mergegit rebase 合并完成后合并后的环境修复(如更新依赖、重新构建)合并后检测到 package-lock.json 变更,自动运行 npm install 安装新依赖。
pre-applypatch客户端钩子git am(应用邮箱补丁)或 git apply --apply(应用补丁文件)时,补丁写入工作目录前补丁应用前的预处理校验(如代码格式、敏感信息检查)检查补丁内容是否包含 password 等敏感词,若包含则终止补丁应用。
pre-receive服务端钩子服务器接收 git push 推送内容前(所有提交被处理前)全局校验推送内容(如权限、分支保护),阻止非法推送禁止向 main 分支直接推送(仅允许通过合并请求)。
post-receive服务端钩子服务器接收 git push 推送内容后(所有提交已写入仓库)触发后续操作(如自动部署、生成文档)推送后自动部署到生产环境(如拉取代码、重启服务)。

注意启用条件:钩子文件需移除 .sample 后缀(如 pre-commit.samplepre-commit),并通过 chmod +x 钩子名 赋予执行权限。

实战

在项目路径下执行 git init 创建Git库

创建测试文件 demo.py

def func_a():print("Hello A")  # 修改此行(触发行号变化)def func_b():print("Hello B")  # 新增此行(触发行号变化)

钩子文件内容(.git/hooks/pre-commit)
其中需要触发的test.py脚本放在SCRIPT_PATH="F:/my-project/test.py"
内容只需要简单打印,进行测试即可

#!/bin/sh
# 适用于 Windows Git Bash 环境的 pre-commit 钩子# 设置 Python 解释器路径(若 Python 已加入系统 PATH,可直接用 python)
PYTHON_EXE="python"  # 或完整路径(如 C:\\Python39\\python.exe)# 目标脚本路径(Windows 路径需用正斜杠或双反斜杠)
SCRIPT_PATH="F:/my-project/test.py"  # 或 F:\\my-project\\test.py# 执行脚本并捕获退出码
"$PYTHON_EXE" "$SCRIPT_PATH"
EXIT_CODE=$?# 若脚本执行失败(非零退出码),终止 commit
if [ $EXIT_CODE -ne 0 ]; thenecho "❌ pre-commit 钩子执行失败:脚本 $SCRIPT_PATH 退出码 $EXIT_CODE"exit 1
fi# 脚本执行成功,继续 commit
exit 0

可以看到在git commit后,会自动触发对应路径下的python脚本。

现在就动手配置你的第一个钩子,让代码提交与协作体验焕然一新吧!

http://www.dtcms.com/wzjs/591556.html

相关文章:

  • 站长工具的网址深圳电商网站开发公司
  • 安阳信息港网站网站风格类型
  • 网站开发好找工作吗微商分销如何搭建分销模式
  • 做效果图的外包网站wordpress获取输入框的值比较
  • 网站上实用的h5特效wordpress滑动注册
  • 网站导航栏下拉菜单常德网站建设哪家快
  • 网站建设与管理方案的总结wordpress 招聘
  • 网站推广方法技巧网站建立的连接不安全
  • 马尾网站建设网页设计的理解
  • 做视频找空镜头那个网站比较全项目建设情况
  • 亚马逊商城官方网站深圳建站公司好坏
  • com的域名是指商业网站的域名.新浦网站制作
  • 小城镇建设网站的观点网站建设完成之后要索取哪些
  • 企业网站设计网站内营销推广方案
  • 中小企业网站建设公司首选徐州英文网站优化
  • 云南昌旅游的网站建设中国建设银行南京分行网站首页
  • 网站建设店铺响应式网站是做列表
  • ps做网站要多大网站建设与维护教学计划
  • thinkphp 做门户网站如何百度搜索到自己的网站
  • 广东省建设厅网站可以查东营网站建设服务商
  • 西宁最好网站建设公司哪家好基于php旅游网站的毕业设计
  • 关于网站项目建设的申请wordpress 热门排序
  • 做自行车网站应该注意什么不断加强门户网站建设
  • 哪家公司做网站专业wordpress创建搜索页面
  • 如何通过网站自己做网站镇江网红景点
  • 包头微网站开发html网页制作模板图片
  • 公司建设网站费用吗网站建设 人性的弱点
  • 安云自助建站系统源码临沂莒南网站建设
  • 网站推广排名服务洛阳做网站公司哪家好
  • 网站流量赚钱小程序需要icp许可证吗