Files

64 lines
1.6 KiB
Markdown

# Development Workflow
This project uses a Git Flow-inspired workflow with `develop` as the leading edge for all development work.
## Branch Structure
- **develop**: Leading edge branch for ongoing development. All feature branches are created from this.
- **main**: Production-ready code. Only merged from develop after review and testing.
- **feature/***: Short-lived branches for specific features. Created from and merged back to develop.
## Workflow
### Starting New Work
```bash
# Ensure you're on develop and up to date
git checkout develop
git pull origin develop
# Create a feature branch from develop
git checkout -b feature/your-feature-name
```
### Completing Work
```bash
# Commit your changes
git add .
git commit -m "Describe your change"
# Push to remote (this creates the branch on origin)
git push -u origin feature/your-feature-name
```
### Creating a Pull Request
1. Push your feature branch to GitHub
2. Create a Pull Request from `feature/*` → `develop`
3. Get review and approval
4. Merge to develop
### Releasing to Production
```bash
# When ready to release, merge develop to main
git checkout main
git pull origin main
git merge develop
git push origin main
# Create a tag for the release
git tag -a v1.0.0 -m "Version 1.0.0"
git push origin v1.0.0
```
## Guidelines
- Always create feature branches from `develop`
- Never commit directly to `develop` or `main`
- Keep feature branches focused on a single purpose
- Merge feature branches to `develop` (not directly to main)
- Only merge `develop` to `main` when ready for production release
- Use meaningful branch names: `feature/`, `fix/`, `refactor/`, etc.