Files
bookhoard/scripts/setup-git-hooks.sh
T
john-okeefe 9b164637d7 chore: Add git hook setup script for submodule safety
This script installs a pre-push hook that prevents pushing commits when submodules have uncommitted changes, helping avoid accidental commits with dirty submodule states.

The hook checks all submodules for uncommitted changes before allowing a push, protecting against pushing incomplete work that includes submodule modifications.
2026-04-12 13:26:57 -04:00

19 lines
687 B
Bash
Executable File

#!/bin/bash
# One-time setup for git hooks on this machine
echo "🔒 Installing pre-push safety hook to prevent pushing with uncommitted submodule changes..."
# Create pre-push hook
mkdir -p .git/hooks
cat >.git/hooks/pre-push <<'EOF'
#!/bin/bash
# Prevent pushing if submodules have uncommitted changes
uncommitted=$(git submodule foreach --quiet 'if [ "$(git status --porcelain)" != "" ]; then echo $name; fi')
if [ -n "$uncommitted" ]; then
echo "❌ ERROR: Submodules have uncommitted changes:"
echo "$uncommitted"
echo "Commit submodules first (or use git sc-commit)"
exit 1
fi
EOF
echo "✅ Git hooks installed! Submodule changes will be checked before pushing."