[Git Hooks] 阻止某个分支合并到另一个分支

序言

在项目开发过程中,通常会涉及到不同的分支,例如开发分支测试分支主干分支等。

一般情况下,我们不能错误地将测试分支合并到其他分支中。然而,有时候由于一些意外情况,我们可能会不小心将测试分支合并到其他分支中,并且在不知情的情况下还添加了新的代码。直到上线之后才被发现,造成的后果可大可小,并且回滚操作也很麻烦。

那么,有没有办法在合并阶段阻止合并非法分支呢?答案是可以的,使用 Git Hooks 可以实现这一点。

什么是 Git Hooks?

Git Hooks 是在执行 Git 命令的过程中会触发的自定义脚本。常用的钩子(hooks)包括:pre-commitcommit-msgpre-push 等。举个例子,我们可以在 pre-commit 触发时进行代码格式验证,在 commit-msg 触发时对 commit 消息和提交用户进行验证,在 pre-push 触发时进行单元测试、e2e 测试等操作。

在执行这些脚本时,如果以非零的值退出程序,将会中断 Git 的提交/推送流程。因此,在 hooks 脚本中,当验证消息/代码不通过时,我们可以使用非零值来退出程序,从而中断 Git 的流程。

exit 1

然而,.git/hooks 无法通过 git push 推送到远程仓库,也无法通过 git pull 拉取回来。因此,在项目团队成员之间分享与同步 Git Hooks 就成了一个问题。为了解决这个问题,我们可以使用 Husky。

什么是 Husky?

Husky 是方便使用 Git Hooks 的工具,它集成了 Git Hooks 的功能,使其更加便捷。除此之外,Husky 还可以配合 commitlintlint-staged 等工具,用于检查提交信息的格式以及对代码进行格式化等操作。

安装 Husky

yarn add husky --dev
# or
npm install -D husky

初始化 Husky

npx husky-init

npx husky-init 命令实际上是向 package.json 文件的 scripts 中添加 prepare 脚本

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值