31 lines
888 B
Bash
Executable File
31 lines
888 B
Bash
Executable File
#!/usr/bin/env sh
|
|
# 启用 .githooks/ 作为 hooksPath
|
|
# 设计:docs/superpowers/specs/2026-05-14-beidou-git-governance-design.md §4.4
|
|
# 注:已永久移除 pre-commit(原 pnpm lint-staged),仅保留 commit-msg 单 hook
|
|
|
|
set -eu
|
|
|
|
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
echo "✗ 当前目录不是 Git 仓库" >&2
|
|
exit 1
|
|
fi
|
|
|
|
repo_root=$(git rev-parse --show-toplevel)
|
|
cd "$repo_root"
|
|
|
|
if [ ! -f .githooks/commit-msg ]; then
|
|
echo "✗ 缺少 .githooks/commit-msg,请确认治理物料已分发" >&2
|
|
exit 1
|
|
fi
|
|
|
|
git config core.hooksPath .githooks
|
|
chmod +x .githooks/commit-msg
|
|
|
|
# 历史遗留的 pre-commit 文件若仍存在,移除可执行位以防误触发
|
|
if [ -f .githooks/pre-commit ]; then
|
|
chmod -x .githooks/pre-commit 2>/dev/null || true
|
|
fi
|
|
|
|
echo "✓ commit-msg hook 已启用(.githooks/commit-msg)"
|
|
echo " 紧急绕过:git commit --no-verify"
|