#!/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."