Skip to main content
US Army Corps of EngineersInstitute for Water Resources, Risk Management Center

Branching Strategy

Branch Types

RMC uses a simplified feature branch workflow suitable for on-demand deployment:

main (protected)
├── feature/user-authentication
├── bugfix/login-redirect-error
├── enhancement/dashboard-performance
└── hotfix/critical-security-patch

Branch Naming Convention

Format: <type>/<short-description>

Types:

  • feature/ - New functionality
  • bugfix/ - Fixes for existing functionality
  • enhancement/ - Improvements to existing features (includes testing)
  • hotfix/ - Critical fixes for production issues
  • docs/ - Documentation-only changes
  • refactor/ - Code restructuring without behavior changes

Examples:

  • feature/pdf-export
  • bugfix/data-grid-sorting
  • enhancement/load-time-optimization
  • hotfix/memory-leak-fix

Description rules:

  • Use lowercase with hyphens (kebab-case)
  • Be specific but concise (2-4 words ideal)
  • Avoid ticket numbers unless necessary for tracking

Creating a Branch

Always branch from main:

# Ensure the local repository is on main and up to date
git checkout main
git pull origin main

# Create and switch to new branch
git checkout -b feature/new-feature-name

Branch Lifecycle

  1. Create branch from current main
  2. Develop the feature with regular commits
  3. Push to remote regularly (at least daily)
  4. Open a pull request when the feature is complete
  5. Review and address feedback
  6. Merge after approval
  7. Delete the branch after successful merge