首页 > 解决方案 > Git添加预提交钩子而不是暂存文件以进行提交

问题描述

我编写了一个预提交钩子,它编译我的项目并将生成的文件添加到提交中。

这是一个 JavaScript 项目,我正在使用 husky,但我也尝试过编辑 .git/hooks/pre-commit 并且文件没有被添加到提交中。如果我取消提交,我可以看到文件已添加,但由于某种原因,这不适用于当前提交。

我的预提交钩子看起来像:

const shell = require('shelljs');

shell.exec('yarn bundle');
shell.exec('git add dist');
shell.exit(0);

shelljs只是一个在节点中执行跨操作系统 unix 命令的库

我编辑了.git/hooks/pre-commit要运行git add dist的文件,但该文件仍未添加到提交中

标签: gitpre-commit-hookgit-husky

解决方案


我不认为 agit add可以在pre-commit 钩子中工作,用于检查将要提交的内容,而不是修改它。

您可以采用类似于“ Git 挂钩是否可以自动将文件添加到提交? ”的方法,这会创建一个单独的附加提交。


推荐阅读