Posted by: Jeff Timmins | March 18, 2015

Branching models

Update – April 2018

After revisiting this topic I found that the source I used for this post was the focus of another opinion on branching stating this advice could actually be harmful (also interesting to read the many conflicting opinions in the comment section of that post). Looking at it again I agree that it is more complex than it should be. In the end I should have done more research before posting my entry – my apologizes for that. Instead of removing this post I’ve updated it and provided a few links for further research.    

Original post with some modifications

I’ve understood the software build process for a number of years but it wasn’t until I worked in Synacor that I understood branching. The concept of a Hotfix branch is simple but understanding the inter-workings of branching process a little more detailed.

Build graphic from Vincent Driessen’s site

At Synacor the Release Managers were responsible for requesting builds so I had some things to learn. I remember it taking a few weeks to understand the difference between the Master (working) & Live (shipping) branch – similar to the Cactus Model – and how to request successfully a build from the multiple Git repositories.

If you don’t have Russ, Jessie, Mike & Garrett around to help explain branching to you can turn to either Creative Bloq Staff’s 2015 post “Choose right Git branching strategy” or Vincent Driessen’s explanation from his 2010 post at “A successful Git branching model” (a.k.a. GitFlow). Note that Creative Bloq provided an overview of multiple solutions and Vincent’s article was a) the focus of Jussi Judin’s post (same link as provided in Update above) stating this process was harmful and b) written for a Build Engineer/Release Engineer so you can skip the Git commands if you want to understand it at a high-level only. If interested, here is further discussion on the “A successful Git branching model” post.

Of course there are other explanations and other examples available other than Git but you will not go wrong understanding this standard model. Git is a popular code repository so it is a great place to start learning about branching.

Other links that might be helpful



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s


%d bloggers like this: