DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Runtime FinOps: Making Cloud Cost Observable
  • Shrink a Bloated Git Repository and Optimize Pack Files
  • Open-Source GitOps at the Edge: Deploying to Thousands of Clusters With Rancher Fleet
  • From Command Lines to Intent Interfaces: Reframing Git Workflows Using Model Context Protocol

Trending

  • How to Prevent Data Loss in C#
  • Retesting Best Practices for Agile Teams: A Quick Guide to Bug Fix Verification
  • Self-Hosted Inference Doesn’t Have to Be a Nightmare: How to Use GPUStack
  • Stop Writing Dialect-Specific SQL: A Unified Query Builder for Node.js
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. Deployment
  4. UnifiedFlow: Git Branching Strategy

UnifiedFlow: Git Branching Strategy

In this article, learn pros and cons of UnifiedFlow, as well as how to deploy stable features signed off by QA according to the release plan.

By 
Putthiphong Boonphong user avatar
Putthiphong Boonphong
·
Updated Oct. 16, 21 · Tutorial
Likes (6)
Comment
Save
Tweet
Share
14.9K Views

Join the DZone community and get the full member experience.

Join For Free

Git Branching Strategy

Pros

  • Every branches fork from a stable state.
  • Prevent side-effects (defect/ad-hoc/config) from merging develop into feature, release and main.
  • Group stable features according to release plan.
  • Easily remove features from release.

Cons

  • Require optional merge branch if using with Pull-Request. PR will merge the target branch on your feature; may cause unknown side-effects and stall you for days to fix it.
  • Multiple merge conflicts in develop and release.

Getting Started

init: main

Git branching init

fork: main -> develop

Git Strategy Folk

Features

fork: main -> feature

Git Branching folk

merge: develop <- feature

Git Branching merge

deploy: develop to SIT, test, and approve as Release Candidate by QA

Bug Fixes

fork: main -> bugfix

Git Branching bug fixes folk

merge: develop <- bugfix

Git Branching bug fixes merge

deploy: develop to SIT, test and approve as Release Candidate by QA

Releases

fork: main -> release

Git Releases folk

merge/squash: release <- {bugfix, feature}

Releases merge/squash

deploy: release to UAT, test and sign off by QA

merge: main <- release

Git Release merge

tag: {version: YY.MM.buildNumber}

Git release tag

deploy: main to PROD, test and verify by QA

Hot Fixes

fork: main -> hotfix

Git hot fixes

deploy: hotfix to UAT, test and verify by QA

merge/squash: main <- hotfix

Git merge/squash

tag: {version: YY.MM.buildNumber-hotfix}

Git tag

deploy: main to PROD, test and verify by QA

Update Branches From Main (Stable) Not Develop (Unstable)

merge/rebase: main -> {feature, bugfix}

Git merge

Git

Published at DZone with permission of Putthiphong Boonphong. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Runtime FinOps: Making Cloud Cost Observable
  • Shrink a Bloated Git Repository and Optimize Pack Files
  • Open-Source GitOps at the Edge: Deploying to Thousands of Clusters With Rancher Fleet
  • From Command Lines to Intent Interfaces: Reframing Git Workflows Using Model Context Protocol

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook