Skip to main content

Manage git workflow between multiple branches

Project description

Brancher

Brancher is a tool inspired by git flow that is more flexible in how it handles branching. It allows any configuration of branches and simply makes it easier to see which commits are in what branch, as well as advancing changes between branches. A typical branch layout may be like this:

┌─────────────────┐   ┌─────────────────┐   ┌─────────────────┐   ┌─────────────────┐
│     develop     ├──▶│     staging     ├──▶│      beta       ├──▶│     master*     │
└─────────────────┘   └─────────────────┘   └─────────────────┘   └─────────────────┘

                                                                 *production branch

Note: Brancher can handle other configurations, assuming there's one final "production" branch and any number of sequential pre-production branches to the left of it.

Installation

pip3 install gitbrancher

Available Commands

Commands:

  • overview (o): Prints an overview of branches with outstanding commits
  • forward (f): Fast forwards commits into branch
  • backfix (b): Applies changes on more advanced branches to current one
  • compare (c): Shows commits in one branch but not another
  • init: Initialize repo

Add -h to any command for usage details.

Usage

Initialization

Let's start with an example of an empty repo.

First Commit

Next, initialize Brancher. Brancher will store your branching model in your repository's local configuration.

Brancher init

Advancing commits

Now let's start some development work.

Development work

That looks good, so we'll advance that commit to staging, the next branch after develop.

Advancing commits

While staging is having some Q/A work done, we'll continue development in develop:

More development work

Commit overview

With pending commits in develop and staging, let's get an overview of what commits exist where.

Overview

Backfilling hotfixes

With development work ongoing and Q/A happening on staging, let's make an urgent bugfix to production. As you can see, once that commit has been made, it only exists on the master branch, not other branches.

Hotfix to production

We want to bring that hotfix back into develop. After checking out develop, we'll apply the hotfix to develop too:

Backfix to staging

An overview confirms that the backfilled changes have been applied to develop, but not beta or staging:

Overview hotfix

We can remedy this by applying the hotfix to those environments, also:

Backfill beta

Backfill stagign

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitbrancher-1.2.1.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

gitbrancher-1.2.1-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file gitbrancher-1.2.1.tar.gz.

File metadata

  • Download URL: gitbrancher-1.2.1.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.9.19 Linux/6.5.0-1023-azure

File hashes

Hashes for gitbrancher-1.2.1.tar.gz
Algorithm Hash digest
SHA256 85024b51020893c6116c834cd02b98a0d28dcc82ebb7a73ba0b9921f6156d96d
MD5 630beadefccc5a146a976e634e600ea0
BLAKE2b-256 8f86b642117ca6cc786243678d5e45f31d36705dda5a1b746375e4e151a97d34

See more details on using hashes here.

File details

Details for the file gitbrancher-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: gitbrancher-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.9.19 Linux/6.5.0-1023-azure

File hashes

Hashes for gitbrancher-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f765cf0485cc9bb65cd95b929fbfabcc85d7de0900907dca88d99e7ee4fc3355
MD5 d5240e4fa34c969a8644ed9fe6b4cd37
BLAKE2b-256 20eab8ca65a798ea3c9f9af9e323cac37ed8c45e11724c59ec3d18e81b7a3dd8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page