如何使用 Node.js 在 Windows 中创建 git 挂钩?

How to create git hooks in Windows with Node.js?

我一直在关注 this 关于如何使用 Node.js 编写 git 挂钩脚本的指南。但是,指南使用的是基于 Unix 的系统,而我 运行 在 Windows 机器上使用。

我还在 Windows 机器上的 运行ning git 挂钩上找到了 this 指南,但它没有使用 Node.js

package.json 节选

  "scripts": {
    "preinstall": "git config core.hooksPath ./git.hooks"
  },

在我的 git.hooks 文件夹中有一个 pre-commit.js 文件。

我更新了第一行以反映我想执行脚本 运行ning Node.js

前commit.js

#!C:/Program\ Files/nodejs/node.exe

console.log('Hello world!');

process.exit(1);

如果我直接 运行 这个脚本,我会收到 Microsoft JScript 编译错误 - 第 1 行字符 1 上的字符无效。

如果我进行提交,我不会收到任何错误,但什么也不会发生。

任何人都可以指导我完成在 Windows 中创建 Node.js 挂钩的过程。我宁愿自己创建一个也不愿使用软件包。

  1. 准确命名挂钩 pre-commit,不带 .js

  2. 将第一行改为#!/usr/bin/env node。但是要确保C:/Program\ Files/nodejs/node.exe已经添加到环境变量PATH.

  3. 放在<repo>/.git/hooks.

  4. 使其可执行。在git-bash,运行chmod a+x <repo>/.git/hooks/pre-commit.

现在它应该可以正常工作了。