git校验提交

111

通过git clone等操作会在当前目录下生成.git隐藏文件

在hooks目录下,该目录下的所有名称带sample的都是钩子函数的模板文件

当我们在测试代码的时候很有可能为了测试或者临时添加一些代码进行调试,为了避免推送到线上可以启用该脚本

在项目下的 .git/hooks目录下,将你需要进行执行的模版文件的文件复制出来

# push前执行
cp pre-push.sample pre-push

修改文件

#!/bin/bash
​
# 定义需要检查的字符串
FORBIDDEN_STRING='127.0.0.1'
​
# 获取当前分支名称
current_branch=$(git symbolic-ref --short HEAD)
​
# 获取未推送的提交列表
commits=$(git cherry -v | grep '^+' | awk '{print $2}')
​
# 如果没有提交,直接退出
if [ -z "$commits" ]; then
  exit 0
fi
​
# 检查每个提交是否包含特定字符串
for commit in $commits; do
  if git grep -q "$FORBIDDEN_STRING" $commit; then
        echo -e "\033[31m错误:提交 $commit 包含禁止的字符串 '$FORBIDDEN_STRING',无法推送。\033[0m"
    exit 1
  fi
done
​
exit 0