Prettier 使用 pre-commit(.com) 不会重新暂存更改
Prettier using pre-commit(.com) does not re-stage changes
我开始使用 Prettier + eslint 使用 pretty-quick
& husky
(option 2)。它按预期运行,即在提交(或修改)期间重新格式化代码并将更改包含在提交中。
我的 monorepo 需要(几个)更多的预提交挂钩,所以我最终迁移到 pre-commit.com(选项 3)。现在,当我提交或修改时,Prettier 会修改文件和 returns Failed
状态。这创建了一个相当烦人的工作流程,我被迫添加文件并尝试再次提交更改。
有什么方法可以将更改重新暂存为提交的一部分吗?
pre-commit 故意不触及停靠区。默默地改变正在做的事情是危险的。该工具总是让您有机会在提交之前验证挂钩的作用
您可以在问题跟踪器中阅读更多相关信息:
- 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 && !!
之后立即 - 这将暂存更改的文件并重新运行 你刚才的命令 运行
如果你想冒险进入不受支持的领域,你可以 运行 这作为命令的一部分(如其中一个问题所示)——但这巧妙地打破了很多 gua运行该工具具有的 T 恤
- id: yapf
entry: bash -c 'yapf "$@"; git add -u' --
免责声明:我是 pre-commit
的作者
我相信我的哥哥,Pre-commit 的创建者会证实这一点,但这是 pre-commit 的预期行为。它应该会失败,因为它正在直接修改您的文件。实际上,我自己使用了使用 Prettier 的精确设置,虽然它很烦人,但这只是你必须改变的事情之一。我喜欢做一个 git commit -m called 'format' 之类的东西,然后提交实际更改。
编辑:我还没来得及回答他就狙击了我,他的回答更深入
假设您理解上面给出的不盲目执行此操作的原因,我想分享 a simple rule script I wrote for the wonderful fuck 它会自动更新暂存区域并重试提交命令。
因此,用法如下所示:
$ git commit -m "..."
[pre-commit modifies some files and abort the commit]
$ fuck
我开始使用 Prettier + eslint 使用 pretty-quick
& husky
(option 2)。它按预期运行,即在提交(或修改)期间重新格式化代码并将更改包含在提交中。
我的 monorepo 需要(几个)更多的预提交挂钩,所以我最终迁移到 pre-commit.com(选项 3)。现在,当我提交或修改时,Prettier 会修改文件和 returns Failed
状态。这创建了一个相当烦人的工作流程,我被迫添加文件并尝试再次提交更改。
有什么方法可以将更改重新暂存为提交的一部分吗?
pre-commit 故意不触及停靠区。默默地改变正在做的事情是危险的。该工具总是让您有机会在提交之前验证挂钩的作用
您可以在问题跟踪器中阅读更多相关信息:
- 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 && !!
之后立即 - 这将暂存更改的文件并重新运行 你刚才的命令 运行
如果你想冒险进入不受支持的领域,你可以 运行 这作为命令的一部分(如其中一个问题所示)——但这巧妙地打破了很多 gua运行该工具具有的 T 恤
- id: yapf
entry: bash -c 'yapf "$@"; git add -u' --
免责声明:我是 pre-commit
的作者我相信我的哥哥,Pre-commit 的创建者会证实这一点,但这是 pre-commit 的预期行为。它应该会失败,因为它正在直接修改您的文件。实际上,我自己使用了使用 Prettier 的精确设置,虽然它很烦人,但这只是你必须改变的事情之一。我喜欢做一个 git commit -m called 'format' 之类的东西,然后提交实际更改。
编辑:我还没来得及回答他就狙击了我,他的回答更深入
假设您理解上面给出的不盲目执行此操作的原因,我想分享 a simple rule script I wrote for the wonderful fuck 它会自动更新暂存区域并重试提交命令。
因此,用法如下所示:
$ git commit -m "..."
[pre-commit modifies some files and abort the commit]
$ fuck