跳转至

git hooks 的设置与跳过

git 仓库下的 .git/hooks 下加上这一句

#!/usr/bin/env sh
FORMATTER="./node_modules/.bin/prettier"
FILES=$(git diff --cached --name-only --diff-filter=ACMR | sed 's| |\\ |g')

[ -z "$FILES" ] && exit 0

# Prettify all selected files
echo "$FILES" | xargs $FORMATTER --ignore-unknown --write

# Add back the modified/prettified files to staging
echo "$FILES" | xargs git add

exit 0

即可实现格式化产生 diff 的文件。

但是也会有一些情况需要跳过格式化,比如解决掉一些prettier造成的 Markdown 格式问题。

commit  时增加 --no-verify  指令来跳过git hooksgit commit --no-verify