项目husky 配置

前置条件

node_modules存在,否则需要执行依赖包安装
npm install or yarn or pnpm install

pre-commit

检查代码是否通过eslint husky的配置检测
package.json

{
  "lint-staged": {
    "*.js": ["eslint", "git add"]
  },
  "scripts": {
    "lint-staged": "lint-staged",
    "format": "prettier --write \"**/*.{js,json}\"",
    "format-check": "prettier --check \"**/*.{js,json}\""
  },
  "devDependencies": {
    "husky": "^x.y.z",
    "eslint": "^x.y.z",
    "prettier": "^x.y.z"
  },
  "husky": {
    "hooks": {
      "pre-commit": "npm run lint-staged && npm run format-check"
    }
  }
}

pre-push 配置

在提交之前检测当前分支是否已经合并最新的master分支代码
需要配置文件pre-push.sh package.json .husky/pre-commit.sh

  • 检测当前分支是否是最新的
    pre-push.sh
git fetch --all

echo "fetch code"
# 检查当前分支是否与远程同名分支有差异
if ! git merge-base --is-ancestor origin/$(git rev-parse --abbrev-ref HEAD) HEAD ; then
  echo "您的分支落后于远程分支,请先拉取并合并远程更改。"
  exit 1
fi
echo "compare remote barnch fininsh"
  • 检测当前分支是否是合并了最新的master分支
    pre-push.sh
# 获取当前分支名
current_branch=$(git rev-parse --abbrev-ref HEAD)

# 主分支名称,这里假设为 master
main_branch="master"

# 检查当前分支是否为主分支
if [ "$current_branch" = "$main_branch" ]; then
  echo "当前已在主分支,请确保代码已更新并准备提交。"
else
  # 拉取远程主分支的最新提交
  git fetch origin "$main_branch"

  # 检查当前分支是否落后于远程主分支
  if ! git merge-base --is-ancestor origin/"$main_branch" HEAD; then
    echo "您的分支落后于远程主分支,请先拉取并合并最新的主分支代码。"
    exit 1
  fi
fi

# 如果检查通过,继续执行后续的钩子任务
exit 0

package.json

  "husky": {
    "hooks": {
      "pre-commit": "sh ./.husky/pre-commit.sh"
    }
  }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值