为什么我的 git 预提交钩子 运行 不是?
Why isn't my git pre-commit hook running?
直到最近——我几天前才注意到这一点——我的 git 预提交钩子还在工作。我正在编写一个 React 应用程序,并使用 Husky、TSLint 和 Prettier 在提交之前清理和检查我的代码。现在,当我更改和提交文件时,预提交挂钩不会 运行.
我的项目结构是这样的:
- project
- .git/
- react/ <- the frontend
- node_modules/
- src/
- package.json
- (other files)
- nodejs/ <- the server
- node_modules/
- src/
- package.json
- (other files)
- package.json
- (other files)
如果我手动执行钩子,似乎 运行 没问题:
[/project/react] # git status
On branch fixHusky
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: MyFile.ts
[/project/react] # ../.git/hooks/pre-commit
husky > pre-commit (node v12.6.0)
↓ Stashing changes... [skipped]
→ No partially staged files found...
✔ Running linters...
[/project/react] #
但是当我真正尝试提交时,哈士奇并没有 运行:
[/project/react] # git commit -m "testing husky"
[fixHusky cf17a6b] testing husky
1 file changed, 1 insertion(+), 1 deletion(-)
[/project/react] #
知道为什么它不是 运行ning 吗?
检查 git config core.hooksPath 是否设置为与其默认路径不同的路径:$GIT_DIR/hooks
还要检查 GIT_DIR
(环境变量)当前是否未设置。
在这两种情况下,Git 会在您期望的地方 而不是 寻找那个挂钩(并且目前有您的 pre-commit 挂钩)
通过 运行 yarn add --dev husky
更新 Husky 解决了该问题。我不知道为什么它停止工作,但无论如何 husky 已经非常过时了。
直到最近——我几天前才注意到这一点——我的 git 预提交钩子还在工作。我正在编写一个 React 应用程序,并使用 Husky、TSLint 和 Prettier 在提交之前清理和检查我的代码。现在,当我更改和提交文件时,预提交挂钩不会 运行.
我的项目结构是这样的:
- project
- .git/
- react/ <- the frontend
- node_modules/
- src/
- package.json
- (other files)
- nodejs/ <- the server
- node_modules/
- src/
- package.json
- (other files)
- package.json
- (other files)
如果我手动执行钩子,似乎 运行 没问题:
[/project/react] # git status
On branch fixHusky
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: MyFile.ts
[/project/react] # ../.git/hooks/pre-commit
husky > pre-commit (node v12.6.0)
↓ Stashing changes... [skipped]
→ No partially staged files found...
✔ Running linters...
[/project/react] #
但是当我真正尝试提交时,哈士奇并没有 运行:
[/project/react] # git commit -m "testing husky"
[fixHusky cf17a6b] testing husky
1 file changed, 1 insertion(+), 1 deletion(-)
[/project/react] #
知道为什么它不是 运行ning 吗?
检查 git config core.hooksPath 是否设置为与其默认路径不同的路径:$GIT_DIR/hooks
还要检查 GIT_DIR
(环境变量)当前是否未设置。
在这两种情况下,Git 会在您期望的地方 而不是 寻找那个挂钩(并且目前有您的 pre-commit 挂钩)
通过 运行 yarn add --dev husky
更新 Husky 解决了该问题。我不知道为什么它停止工作,但无论如何 husky 已经非常过时了。