# 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