我开始使用 Prettier + eslint 使用 pretty-quick
& husky
( option 2 )。它按预期运行,即在提交(或修改)期间重新格式化代码并将更改包含在提交中。
我的 monorepo 需要(几个)更多的预提交 Hook ,所以我最终迁移到 pre-commit.com (选项 3)。现在,当我提交或修改时,Prettier 会修改文件并返回 Failed
状态。这创建了一个相当烦人的工作流程,我被迫添加文件并尝试再次提交更改。
有什么方法可以将更改重新暂存为提交的一部分吗?
最佳答案
有意预提交从不接触暂存区。默默地改变正在做的事情是危险的。该工具总是让您有机会在提交之前验证 Hook 的作用
您可以在问题跟踪器中阅读更多相关信息:
- https://github.com/pre-commit/pre-commit/issues/532
- https://github.com/pre-commit/pre-commit/issues/747
- https://github.com/pre-commit/pre-commit/issues/806
- https://github.com/pre-commit/pre-commit/issues/879
- ...还有更多
如果你想仓促行事,我的建议是在之后立即运行 git add -u && !!
——这将暂存更改的文件并重新运行你刚刚运行的命令
如果您想冒险进入不受支持的领域,您可以将其作为命令的一部分运行(如其中一个问题所示)——但这巧妙地破坏了该工具的许多保证
- id: yapf
entry: bash -c 'yapf "$@"; git add -u' --
免责声明:我是预提交的作者
关于Prettier 使用 pre-commit(.com) 不会重新暂存更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64309766/