多分支推送问题 - 使用 Husky 预推送 Git 钩子



我的问题很简单:

  • 我正在使用赫斯基来处理 git 钩子

  • 我已经配置了一个运行 2 个脚本的预推钩子:

    "预推":"npm-run-all --并行 lint 测试">

  • 它在单次推送时工作正常

  • 但是当我尝试推送到 2 个或更多分支时,它不会检测到失败的脚本。

例如,假设我创建了 2 个分支:

  1. 功能/分支-1

  2. 功能/分支-2

  • 分支 1 包含 lint 问题,分支 2 是干净的(没有测试失败/没有 lint 问题(
  • 我签出到分支 2 并推送两个分支(在我的情况下使用 SourceTree(。

调用了 husky prePush 脚本,但 lint 脚本不会失败(如果我只推送该分支时它失败,则为 Haven(。

我正在使用赫斯基 0.14.3

不能在当前不在的分支上运行测试。
如果你在feature/branch-2上并推feature/branch-1,githook 将正常触发并运行。但是文件系统上应用程序的当前状态是 feature/branch-2 ,因此测试将通过。
在推送之前,您需要签出要推送的分支。

另一种方法是在pre-commit上运行测试,这样您将始终位于正确的分支上。
或者做一些脚本来检查正确的分支,运行测试,推送并把你放回你以前的分支上。虽然可能,但可能有点过度设计。

最新更新