Block pushes and commits to main with git hooks

pre-push rejects any push that would update refs/heads/main, however the
command is spelled; pre-commit and pre-merge-commit refuse commits while
main is checked out. npm install enables them via core.hooksPath. The
README documents the three layers of protection for main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
christianandClaude Opus 5.5 committed 2026-10-21 00:39:56 +02:00
1 parent 183e44db62
commit 8b08c7b27a
6 files changed
+84 -1

No files matched your search

+7
View File
@@ -0,0 +1,7 @@
#!/bin/sh
# Refuse commits (and, via pre-merge-commit, merge commits) while main is checked out.
if [ "$(git symbolic-ref --short -q HEAD)" = "main" ]; then
echo "$(basename "$0"): committing on main is not allowed; create a branch first." >&2
exit 1
fi
exit 0