main
repo-template
🤞 初始化仓库 Git hook
#!/bin/bash
# 获取提交信息
COMMIT_MSG_FILE=$1
COMMIT_MSG=$(cat "$COMMIT_MSG_FILE")
# 正则表达式
regex="^(Feat|Update|Fix|Docs|Style|Refactor|Perfect|Test|Chore): .+"
# 匹配提交类型
if [[ "$COMMIT_MSG" =~ $regex ]]; then
# 根据类型映射 Emoji
case "${BASH_REMATCH[1]}" in
"Feat") EMOJI="✨" ;;
"Update") EMOJI="🔄" ;;
"Fix") EMOJI="🐛" ;;
"Docs") EMOJI="📝" ;;
"Style") EMOJI="🎨" ;;
"Refactor") EMOJI="♻️" ;;
"Perfect") EMOJI="⚡" ;;
"Test") EMOJI="✅" ;;
"Chore") EMOJI="🔧" ;;
*) EMOJI="" ;;
esac
# 追加 Emoji(如果未添加过)
if [[ ! "$COMMIT_MSG" =~ "$EMOJI" ]]; then
NEW_MSG="${BASH_REMATCH[0]} $EMOJI${COMMIT_MSG:${#BASH_REMATCH[0]}}"
echo "$NEW_MSG" > "$COMMIT_MSG_FILE"
fi
else
# 拒绝提交
echo "错误:提交信息格式必须为 \"<类型>: <描述>\",例如 \"Feat: 新增功能\""
echo "可选类型: Feat|Update|Fix|Docs|Style|Refactor|Perfect|Test|Chore"
exit 1
fi