git hooks配置

背景

用cocoapods管理的iOS项目中需要限制 release 分支直接push

经过一番Google,找到了git hooks限制的方法,但是看了很多文章,发现废话一堆,不能快速的解决我的问题

在这里记录一下

第一步,进入你项目的.git/hooks路径下

可以看到很多sample后缀文件,根据文件名,你可以猜到是控制git操作哪一步的,例如我要控制push,那么我就是修改pre-push那个文件

第二步修改pre-push

  • 用编辑器打开,编辑这个文件
  • cursour给写的
shell 复制代码
#!/bin/sh

remote="$1"
url="$2"

# Block pushing directly to release branches (e.g., release or release/*)
block_pattern='^refs/heads/release($|/)'

while read local_ref local_sha remote_ref remote_sha
do
	if echo "$remote_ref" | grep -Eq "$block_pattern"; then
		echo >&2 "检测到目标分支为受保护分支:$remote_ref"
		echo >&2 "禁止直接 push 到 release 分支。请通过 Pull Request 或受保护流程合并。"
		exit 1
	fi
done

exit 0
  • 文件编辑好后,把 .sample去掉,就会变成一个shell程序

第三步同步hooks

因为hooks是放在.git下面的,但是.git不能上传到远端,想要同步给其他人,还需要做以下操作

  • 复制编辑好的 hooks文件夹到项目的根目录,文件夹名称为 .hooks
  • 在podfile中随便找个地方写上这样一段命令 system("git config core.hooksPath .hooks"),在执行pod更新的时候,就会自动配置git config
  • 以上就完成了git hooks的同步

参考文章

相关推荐
福如意如我心意8 小时前
git清除仓库敏感文件并同步至远端的操作
git
Brilliantwxx11 小时前
【Linux】 开发|Git 版本控制与 gdb/cgdb 调试
linux·笔记·git
.Hypocritical.1 天前
Git 全套实操|配置 /.gitignore/ 分支合并 / 冲突解决 /git stash 完整教程
git
来日方长。。。。long1 天前
Hermes Agent橙皮书共读|第三篇:保姆级实战部署|本地/VPS从零搭建Hermes
ide·git·hermes
其实防守也摸鱼1 天前
VS Code Git 工作树:解锁多分支并行开发新体验
数据库·git·安全·oracle·架构·自动化
ERD Online1 天前
我们怎么设计 good first issue:让第一个 PR 两小时内合入
数据库·git·后端·开源·issue
Python私教2 天前
Codex 自动写 Commit 够安全吗?一套证据化 Git 提交流程
人工智能·git·后端
果果燕2 天前
实习笔记(一):NFS、Samba、VNC、Git、CMake、systemd、内核、交叉编译
linux·arm开发·c++·笔记·git
美味蛋炒饭.2 天前
Git 版本控制(下)
开发语言·git·学习·总结·后端开发
互联网中的一颗神经元2 天前
09 — .git 地图:打开那个隐藏文件夹
大数据·git·elasticsearch