Skipping
如果您能够修改hooks,您可以为每个添加一个切换开关。
特定验证切换的示例pre-commit.sample https://git.kernel.org/pub/scm/git/git.git/tree/templates/hooks--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
Aliasing
Note: 两种类型的别名break https://stackoverflow.com/questions/342969/how-do-i-get-bash-completion-to-work-with-aliases 制表符补全.
A git alias https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases可以简化这个:
git config --global alias.noprecommit \
'!git -c hook.pre-commit.enabled=false'
这样,您就可以提交并跳过hook通过以下调用:
git noprecommit commit
您还可以使用shell alias http://pubs.opengroup.org/onlinepubs/9699919799/utilities/alias.html(例如:~/.bashrc
):
alias gitnoprecommit='git -c hook.pre-commit.enabled=false'
使用示例:
gitnoprecommit commit