小编Par*_*exe的帖子

你能在 Husky “commit-msg” 挂钩期间 git 添加新文件吗?

我正在尝试设置一个自动版本控制系统,如果我git commit使用消息PATCH: {message},应用程序的补丁版本将自动更新(同样对于前缀MINORMAJOR)。我使用Husky作为我的pre-commit钩子pre-push,所以我尝试使用.husky/commit-msg如下所示的钩子来实现它:

#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npm run auto-version $1 && git add --all
Run Code Online (Sandbox Code Playgroud)

这可以按照需要进行,我的auto-version.js脚本会自动读取提交消息并进行./version.json相应更新。唯一的问题是提交是用旧version.json文件创建的,我不确定为什么。我可以说它git add是有效的,因为提交后我version.json在该部分中留下了更新的文件Staged Changes。我的.husky/pre-commit钩子看起来像这样,并在提交之前暂存更新的文件:

#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npm run lint && npm run format && git add --all
Run Code Online (Sandbox Code Playgroud)

commit-msg我认为这可能与钩子被触发和接受新暂存文件之间的时间有关git,但 Husky 没有提供有关钩子如何commit-msg运行的优秀文档。我也尝试使用钩子进行设置pre-commit,但新的提交消息在这个阶段不会被保存.git/COMMIT_EDITMSG(仅存在旧的提交消息)。

对于一些额外的上下文,我们目前只是立即启动 …

javascript git npm husky git-husky

2
推荐指数
1
解决办法
1630
查看次数

标签 统计

git ×1

git-husky ×1

husky ×1

javascript ×1

npm ×1