多分支推送问题 - 使用赫斯基预先准备Git Hooks

时间:2018-04-05 10:52:13

标签: git hook husky

我的问题很简单:

  • 我正在使用Husky来处理git hooks
  • 我配置了一个运行2个脚本的预包钩:

    “prepush”:“npm-run-all - parallel lint test”

  • 它在单按

  • 时正常工作
  • 但是当我尝试推送2个或更多分支时,它没有检测到失败的脚本。

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

1)feature / branch-1

2)feature / branch-2

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

赫斯基prePush scrit被调用但是lint脚本不会失败(如果我只推动那个分支时它会失败)。

我正在使用赫斯基0.14.3

1 个答案:

答案 0 :(得分:1)

您无法在当前未使用的分支上运行测试 如果您在feature/branch-2并按feature/branch-1,则githook将正常启动并运行。但是您在文件系统上的应用程序的当前状态是feature/branch-2,因此测试将通过 在推送之前,您需要检查要推送的分支。

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