# Git Hooks for DanceLessonsCoach This directory contains Git hooks for the DanceLessonsCoach project. ## Available Hooks ### pre-commit - **Location**: `.git/hooks/pre-commit` - **Purpose**: Automatically runs `go mod tidy` and `go fmt` before commits - **Features**: - Runs `go mod tidy` to clean up dependencies - Automatically adds modified `go.mod` and `go.sum` to commit - Runs `go fmt` on all Go files (excluding vendor and .git directories) - Automatically adds formatted files to commit - Only runs if in a Go project (checks for `go.mod`) ## Installation The pre-commit hook is already installed and executable. No additional setup required. ## Usage The hooks run automatically when you commit: ```bash git add . git commit -m "Your commit message" ``` The hook will: 1. Run `go mod tidy` 2. Run `go fmt` on all Go files 3. Add any modified files to your commit 4. Allow the commit to proceed if successful ## Customization To modify the hooks: 1. Edit the hook file in `.git/hooks/` 2. Make it executable: `chmod +x .git/hooks/hook-name` ## Disabling Hooks To temporarily disable hooks: ```bash # Skip pre-commit hook for one commit git commit --no-verify -m "Your commit message" ``` ## Best Practices - Let the hooks run automatically - they ensure code quality - The hooks only modify files that need changes - All changes are added to your commit automatically - Hooks run quickly and prevent common issues ## Troubleshooting If a hook fails: - Check the error message - Fix the issue manually - Commit again Common issues: - `go mod tidy` fails: Check your Go module dependencies - `go fmt` fails: Check for syntax errors in your Go code