DEV Community

Cover image for Git Branch Management
Abir Moulick
Abir Moulick

Posted on

Git Branch Management

Introduction

A well-structured branch management flow is crucial for handling frequent releases and immediate hotfixes efficiently. This article outlines a comprehensive branch management flow designed for regular periodic releases alongside urgent hotfixes, ensuring that features and fixes are tested thoroughly before reaching the production environment. By adopting this flow, teams can enhance collaboration, reduce integration issues, and accelerate time to market.

Branch Types

Main Branches

  • master branch: This is your production branch, and it should always be stable, containing the code that is currently live in Main.
  • develop branch: This is your main development branch where all the features, enhancements, and non-critical bug fixes are merged first. This branch is live in Testing Server and Integrated testing is performed in every merge request.

Supporting Branches

  • Feature branches: New features or enhancements.
    • Naming convention: feature/<feature-name>
  • Bugfix branches: Non-critical bug fixes.
    • Naming convention: bugfix/<bug-name>
  • Release branches: Preparation for new releases.
    • Naming convention: release/vX.X.X
  • Hotfix branches: Critical fixes for production.
    • Naming convention: hotfix/<issue>

Workflow

Regular Release Cycle (Every 14 Days)

  • Feature Development

    1. Developers create feature branches from develop for each new feature.
    2. After completion and local testing, developers will create a pull request to merge it back into develop. The branch is reviewed and then merged into develop.
  • Bug Fixes

    1. Developers create bugfix branches from develop for each bugs.
    2. After completion and local testing, developers will create a pull request to merge it back into develop. The branch is reviewed and then merged into develop.
  • Release Workflow

    1. Every 14 days, create a release branch from develop.
    2. Perform Integrated testing and any final tweaks on this branch.
    3. Once it's confirmed stable, merge release into master and deploy to production.
    4. Also, merge back into develop to ensure all changes are included in the next cycle.

Hotfixes (Immediate Release)

  • Hotfix Workflow:
    1. When a critical issue is identified in production, developers create a hotfix branch directly from master.
    2. Fix the issue in the hotfix branch & test thoroughly.
    3. Merge the hotfix branch first into master and deploy immediately.
    4. Also merge hotfix into develop to ensure the fix is included in the ongoing development.

Conclusion

Adopting a structured branch management flow, offers numerous advantages to any software development team. Implementing such a branch management strategy empowers teams to tackle frequent releases and the need for rapid responses to critical production issues. However, this strategy depends on specific needs and dynamics of the team and varies from company to company.

This is my second blog writing. Feel free to comment if you have any questions or any refinement to the article. If you like the blog, don’t forget to like it & share with your friends/colleagues.

To get in personal touch, connect me on:
Linkedin:https://www.linkedin.com/in/abirmoulick/
Github:https://github.com/Abir10101/

Thanks for reading
Written with ❤️ & passion 🔥 by Abir Moulick

Top comments (0)