Prettier 使用 pre-commit(.com) 不会重新暂存更改

标签 prettier pre-commit-hook pre-commit pre-commit.com

我开始使用 Prettier + eslint 使用 pretty-quick & husky ( option 2 )。它按预期运行,即在提交(或修改)期间重新格式化代码并将更改包含在提交中。

我的 monorepo 需要(几个)更多的预提交 Hook ,所以我最终迁移到 pre-commit.com (选项 3)。现在,当我提交或修改时,Prettier 会修改文件并返回 Failed 状态。这创建了一个相当烦人的工作流程,我被迫添加文件并尝试再次提交更改。

有什么方法可以将更改重新暂存为提交的一部分吗?

最佳答案

有意预提交从不接触暂存区。默默地改变正在做的事情是危险的。该工具总是让您有机会在提交之前验证 Hook 的作用

您可以在问题跟踪器中阅读更多相关信息:

如果你想仓促行事,我的建议是在之后立即运行 git add -u && !!——这将暂存更改的文件并重新运行你刚刚运行的命令

如果您想冒险进入不受支持的领域,您可以将其作为命令的一部分运行(如其中一个问题所示)——但这巧妙地破坏了该工具的许多保证

  - id: yapf
    entry: bash -c 'yapf "$@"; git add -u' --

免责声明:我是预提交的作者

关于Prettier 使用 pre-commit(.com) 不会重新暂存更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64309766/

相关文章:

javascript - 如何只在我想提交的文件上运行 Prettier?

vue.js - 使用 Prettier 在 Vue 模板中保留垂直空白

git - 创建一个 git 钩子(Hook)以防止 merge 到本地存储库中的特定分支,但允许从远程 pull

git - 预提交 Hook 获取部分提交的文件列表

bash - 将 git hook 提交到 repo

django - 预提交 Hook 以检查 django 迁移

linux - 在使用 Git 提交之前检查代码中的注释以获取消息

javascript - vscode 格式不格式化

visual-studio-code - VSCode 加载插件失败找不到模块 'eslint-plugin-prettier'

git - 如何将 clang-formatting 添加到预提交 Hook ?