Skip to content

Instantly share code, notes, and snippets.

@pushpak1300
Created May 6, 2025 11:06
Show Gist options
  • Select an option

  • Save pushpak1300/627652041d8ca695c6d50b5d76480adb to your computer and use it in GitHub Desktop.

Select an option

Save pushpak1300/627652041d8ca695c6d50b5d76480adb to your computer and use it in GitHub Desktop.
Alternative git strategy "MonoFlow"

Currently we don’t want to start following git-flow or fullflesh trunk based (link) as the team is small (2 members) and we don’t want the hassle of maintaining two different branches. So we came up with this alternative git strategy which compliments trunk based development with a single branch.
Let’s call it MonoFlow?
So the workflow looks like this.

Workflow

Feature/Bug Development

  • Create a Branch:
    Start work for any feature or bug fix by branching off from the main branch.
  • Develop and Test Locally:
    Complete your changes, then create a merge request (MR) for code review and local testing.

Dev Release Process

  • Merge to Main:
    Once the feature/bug branch is reviewed and tested, merge it into the main branch.
  • Increment Dev Release:
    Immediately create a development release using SoloVer. Auto-increment the last dev version and append “-dev” (e.g from v0-dev to v1-dev).
  • Deploy to Dev:
    Deploy the entire main branch code (with the new dev release) to the development environment.

Prod Release Process

  • Testing:
    After successful testing in the development environment, coordinate with teammates to confirm that dev testing is complete.
  • Increment Prod Release:
    Create a production release by auto-incrementing from the last production version (e.g., from v0 to v1). The release number is a single integer with no postfix.
  • Deploy to Prod:
    Deploy all services and jobs from the main branch (now carrying the new prod release) to the production environment.

Hotfix Process

  • Immediate Prod Release:
    For urgent hotfixes, follow the same process as above by creating a hotfix branch, then merging into main. Immediately create a production release using the next integer.
  • Sync Dev:
    Once the hotfix is deployed to production, immediately deploy it to the development environment and create a new dev release reflecting the same version (using “-dev”).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment