哈士奇如何工作?
How husky works?
https://github.com/typicode/husky 有能力 运行 git 自动挂钩,它们可以在自己的存储库中的团队之间共享。
这怎么行得通?由于挂钩需要位于 .git/hooks
中,因此不会添加到存储库中。
它是否包装 git
命令和拦截命令,运行在它们发生时挂钩?
我想为 python 和 php 项目重现此行为,而不需要依赖 npm 或节点。
虽然安装了 husky 依赖项(通过 npm install
、npm add husky
、yarn install
、...)git 挂钩在 . git/hooks 目录。如果通过 git 命令触发挂钩,则会触发来自 husky 的脚本,该脚本将根据您用于安装的包管理器执行命令。如果你使用 npm npx --no-install husky-run $hookName "$gitParams"
被执行。该命令查看您的配置并执行为那里的挂钩定义的命令。
它就像 git 挂钩的代理。代理安装一次,每次都通过正常的 git 挂钩执行。如果它被执行,它会查看配置并执行那里定义的命令。
从版本 5 开始,husky
使用 git 的 core.hooksPath
git config core.hooksPath .husky
是准确的。这是在 husky install
步骤中完成的。
由于 husky install
创建的 .husky
文件夹包含 pre-commit
脚本,因此在提交前将是 运行。
默认情况下,它会包含 npm test
,但您可以根据需要对其进行编辑。
您可以在任何项目中做类似的事情。只需添加 .githooks
文件夹并在其中挂钩文件(检查 .git/hooks 以获取示例文件)。但是你必须 运行 git config core.hooksPath .githooks
在克隆 repo(或第一次设置挂钩)时。您可以使用一些初始化脚本来执行此操作。
npm
有 scripts.prepare
可以 运行 在 npm install
上发出命令,在这种情况下是 husky install
。
https://github.com/typicode/husky 有能力 运行 git 自动挂钩,它们可以在自己的存储库中的团队之间共享。
这怎么行得通?由于挂钩需要位于 .git/hooks
中,因此不会添加到存储库中。
它是否包装 git
命令和拦截命令,运行在它们发生时挂钩?
我想为 python 和 php 项目重现此行为,而不需要依赖 npm 或节点。
虽然安装了 husky 依赖项(通过 npm install
、npm add husky
、yarn install
、...)git 挂钩在 . git/hooks 目录。如果通过 git 命令触发挂钩,则会触发来自 husky 的脚本,该脚本将根据您用于安装的包管理器执行命令。如果你使用 npm npx --no-install husky-run $hookName "$gitParams"
被执行。该命令查看您的配置并执行为那里的挂钩定义的命令。
它就像 git 挂钩的代理。代理安装一次,每次都通过正常的 git 挂钩执行。如果它被执行,它会查看配置并执行那里定义的命令。
从版本 5 开始,husky
使用 git 的 core.hooksPath
git config core.hooksPath .husky
是准确的。这是在 husky install
步骤中完成的。
由于 husky install
创建的 .husky
文件夹包含 pre-commit
脚本,因此在提交前将是 运行。
默认情况下,它会包含 npm test
,但您可以根据需要对其进行编辑。
您可以在任何项目中做类似的事情。只需添加 .githooks
文件夹并在其中挂钩文件(检查 .git/hooks 以获取示例文件)。但是你必须 运行 git config core.hooksPath .githooks
在克隆 repo(或第一次设置挂钩)时。您可以使用一些初始化脚本来执行此操作。
npm
有 scripts.prepare
可以 运行 在 npm install
上发出命令,在这种情况下是 husky install
。