111 lines
2.5 KiB
Plaintext
111 lines
2.5 KiB
Plaintext
---
|
|
description: Gitflow Workflow Rules. These rules should be applied when performing git operations.
|
|
---
|
|
# Gitflow Workflow Rules
|
|
|
|
## Main Branches
|
|
|
|
### main (or master)
|
|
- Contains production-ready code
|
|
- Never commit directly to main
|
|
- Only accepts merges from:
|
|
- hotfix/* branches
|
|
- release/* branches
|
|
- Must be tagged with version number after each merge
|
|
|
|
### develop
|
|
- Main development branch
|
|
- Contains latest delivered development changes
|
|
- Source branch for feature branches
|
|
- Never commit directly to develop
|
|
|
|
## Supporting Branches
|
|
|
|
### feature/*
|
|
- Branch from: develop
|
|
- Merge back into: develop
|
|
- Naming convention: feature/[issue-id]-descriptive-name
|
|
- Example: feature/123-user-authentication
|
|
- Must be up-to-date with develop before creating PR
|
|
- Delete after merge
|
|
|
|
### release/*
|
|
- Branch from: develop
|
|
- Merge back into:
|
|
- main
|
|
- develop
|
|
- Naming convention: release/vX.Y.Z
|
|
- Example: release/v1.2.0
|
|
- Only bug fixes, documentation, and release-oriented tasks
|
|
- No new features
|
|
- Delete after merge
|
|
|
|
### hotfix/*
|
|
- Branch from: main
|
|
- Merge back into:
|
|
- main
|
|
- develop
|
|
- Naming convention: hotfix/vX.Y.Z
|
|
- Example: hotfix/v1.2.1
|
|
- Only for urgent production fixes
|
|
- Delete after merge
|
|
|
|
## Commit Messages
|
|
|
|
- Format: `type(scope): description`
|
|
- Types:
|
|
- feat: New feature
|
|
- fix: Bug fix
|
|
- docs: Documentation changes
|
|
- style: Formatting, missing semicolons, etc.
|
|
- refactor: Code refactoring
|
|
- test: Adding tests
|
|
- chore: Maintenance tasks
|
|
|
|
## Version Control
|
|
|
|
### Semantic Versioning
|
|
- MAJOR version for incompatible API changes
|
|
- MINOR version for backwards-compatible functionality
|
|
- PATCH version for backwards-compatible bug fixes
|
|
|
|
## Pull Request Rules
|
|
|
|
1. All changes must go through Pull Requests
|
|
2. Required approvals: minimum 1
|
|
3. CI checks must pass
|
|
4. No direct commits to protected branches (main, develop)
|
|
5. Branch must be up to date before merging
|
|
6. Delete branch after merge
|
|
|
|
## Branch Protection Rules
|
|
|
|
### main & develop
|
|
- Require pull request reviews
|
|
- Require status checks to pass
|
|
- Require branches to be up to date
|
|
- Include administrators in restrictions
|
|
- No force pushes
|
|
- No deletions
|
|
|
|
## Release Process
|
|
|
|
1. Create release branch from develop
|
|
2. Bump version numbers
|
|
3. Fix any release-specific issues
|
|
4. Create PR to main
|
|
5. After merge to main:
|
|
- Tag release
|
|
- Merge back to develop
|
|
- Delete release branch
|
|
|
|
## Hotfix Process
|
|
|
|
1. Create hotfix branch from main
|
|
2. Fix the issue
|
|
3. Bump patch version
|
|
4. Create PR to main
|
|
5. After merge to main:
|
|
- Tag release
|
|
- Merge back to develop
|
|
- Delete hotfix branch |