diff --git a/scripts/setup-git-hooks.sh b/scripts/setup-git-hooks.sh index cd9ca02..1c587fa 100755 --- a/scripts/setup-git-hooks.sh +++ b/scripts/setup-git-hooks.sh @@ -1,8 +1,9 @@ #!/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 +# Create hooks directory mkdir -p .git/hooks +# Create pre-push hook cat >.git/hooks/pre-push <<'EOF' #!/bin/bash # Prevent pushing if submodules have uncommitted changes @@ -14,5 +15,10 @@ if [ -n "$uncommitted" ]; then exit 1 fi EOF - -echo "✅ Git hooks installed! Submodule changes will be checked before pushing." +# Make hook executable +chmod +x .git/hooks/pre-push +# Add git alias for submodule commit +git config --global alias.sc-commit '!sh -c "git submodule foreach \"git add -A && git commit -m \\\"$1\\\" && git push\"" -' +echo "✅ Git hooks and alias installed!" +echo " - Pre-push hook: Checks for uncommitted submodule changes" +echo " - Alias: 'git sc-commit' to commit and push all submodules"