aepbui
发布于 2024-07-10 / 120 阅读
0
0

git校验提交

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

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

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

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

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

修改文件

FORBIDDEN_STRINGS字符串并不适用,优化为数组

#!/bin/bash

# 定义需要检查的字符串数组
# 临时测试添加 TEMP,如临时测试时需要注释指定代码可以注释后并添加TEMP,防止这串代码被提交到远程仓库
FORBIDDEN_STRINGS=('校验项目禁止提交' '127.0.0.1' 'TEMP')

# 获取当前分支名称
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
  for FORBIDDEN_STRING in "${FORBIDDEN_STRINGS[@]}"; do
    if git grep -qi "$FORBIDDEN_STRING" $commit; then
      echo -e "\033[31m错误:提交 $commit 包含禁止的字符串 '$FORBIDDEN_STRING',无法推送。\033[0m"
      exit 1
    fi
  done
done

exit 0

IDEA中添加和TODO类似的高亮


评论