gpt4 book ai didi

githooks - 指定在 git commit --no-verify 上跳过哪个钩子(Hook)

转载 作者:行者123 更新时间:2023-12-05 00:40:23 25 4
gpt4 key购买 nike

如果有办法在使用 --no-verify 时准确指定要跳过哪个 git-hook?或者除了 --no-verify 之外还有其他标志来完成此操作吗?也许只是一个只跳过 pre-commit 的标志?

我有两个经常使用的钩子(Hook),pre-commitcommit-msgpre-commit 运行我的 linting、流检查和一些单元测试。 commit-msg 将我的分支名称附加到提交消息的末尾。

有时我想 --no-verify pre-commit 但仍想拥有 commit-msg运行。

似乎有很多类似的 SO 帖子,但没有什么比使用 --no-verify 选择性跳过更相似。

最佳答案

跳过

如果您能够修改 Hook ,则可以为每个 Hook 添加一个切换开关。

来自 pre-commit.sample 的特定验证切换示例:

# If you want to allow non-ASCII filenames set this variable to true.
allownonascii=$(git config --bool hooks.allownonascii)

因此,要启用切换整个 pre-commit hook,可以将其添加到它的开头:

enabled="$(git config --bool hooks.pre-commit.enabled)"

if test "$enabled" != true
then
echo 'Warning: Skipping pre-commit hook...'
exit
fi

使用示例:

git -c hook.pre-commit.enabled=false commit

别名

注意:两种类型的别名 break 标签补全

一个 git alias可以简化一下:

git config --global alias.noprecommit \
'!git -c hook.pre-commit.enabled=false'

这样,您可以通过以下调用提交并跳过 hook:

git noprecommit commit

您也可以使用 shell alias (例如:~/.bashrc):

alias gitnoprecommit='git -c hook.pre-commit.enabled=false'

使用示例:

gitnoprecommit commit

关于githooks - 指定在 git commit --no-verify 上跳过哪个钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49660985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com