Article

13min read

What Are the Best Git Branching Strategies

In modern software development, speed and agility are crucial when it comes to developing and releasing software. However, when you have a large team of developers working simultaneously, branching and merging code can become messy fast. 

Therefore, teams need to have a process in place to implement multiple changes at once. This is where having an efficient branching strategy becomes a priority for these teams.

If you’re looking to enhance your team’s development workflow and streamline release processes, book a free demo to see how AB Tasty can help.

What is a branching strategy?

Branches are primarily used as a means for teams to develop features giving them a separate workspace for their code. These branches are usually merged back to a master branch upon completion of work. In this way, features (and any bug and bug fixes) are kept apart from each other allowing you to fix mistakes more easily.

This means that branches protect the mainline of code and any changes made to any given branch don’t affect other developers.

A branching strategy, therefore, is the strategy that software development teams adopt when writing, merging and deploying code when using a version control system.

It is essentially a set of rules that developers can follow to stipulate how they interact with a shared codebase.

Such a strategy is necessary as it helps keep repositories organized to avoid errors in the application and the dreaded merge hell when multiple developers are working simultaneously and are all adding their changes at the same time

Such merge conflicts would eventually deter shipping code quickly and thus hindering from creating and maintaining an efficient DevOps process as the whole purpose of DevOps is creating a fast workflow that would allow for the release of small batches of code.  

Thus, adhering to a branching strategy will help solve this issue so that developers can work together without stepping on each other’s toes. In other words, it enables teams to work in parallel to achieve faster releases and fewer conflicts by creating a clear process when making changes to source control.

When we talk about branches, we are referring to independent lines of code that branch off the master branch, allowing developers to work independently before merging their changes back to the code base.

In this post, we will outline some of the branching strategies that teams use in order to organize their workflow where we will look at their pros and cons and which strategy you should choose based on your needs, objectives and your team’s capabilities.

Why you need a branching strategy

As mentioned above, having a branching strategy is necessary to avoid conflicts when merging and to allow for the easier integration of changes into the master trunk.

A branching strategy aims to:
  • Enhance productivity by ensuring proper coordination among developers
  • Enable parallel development
  • Help organize a series of planned, structured releases
  • Map a clear path when making changes to software through to production
  • Maintain a bug-free code where developers can quickly fix issues and get these changes back to production without disrupting the development workflow


In short, implementing effective Git branching strategies is crucial for streamlined collaboration. Complementing this with robust Feature Experimentation allows teams to test and deploy features confidently, ensuring optimal performance across all channels

Git branching

Branches are not just exclusive to Git. However, in this article we focus on Git due to the many advantages this model of branching offers.

Consequently, before we delve into the various branching strategies out there, including Git branching strategies, we will take a look at how Git actually handles branches and why it’s a standout among other VCS tools.

Put simply, Git and other version control tools allow developers to track, manage and organize their code.

Git branches allow developers to diverge from the main branch by creating separate branches to isolate code changes. The default branch in Git is the master branch. 

The biggest advantage of a Git branch is that it’s ‘lightweight’, meaning that data consists of a series of snapshots so with every commit you make, Git takes a picture of what your files look like at that moment and stores a reference to that snapshot. This means that these branches aren’t just copies of the file system but simply a pointer to the latest commit. 

Meanwhile, other VCS tools store information as a list of file-based changes which may slow things down and use up significant space. 

In Git, a branch is essentially a reference or a pointer to the latest commit in a given context; it’s not a container for commits. As you create new commits in the new branch, Git creates new pointers to track the changes. Git branches, then, can be seen as a pointer to a snapshot of your changes. 

The images below illustrate this concept, where the top image shows the master branch and a pointer pointing to the last commit and the image right below it shows what happens when you create a new branch called ‘dev’- a new pointer now points to the latest commit.

Master Branch Illustration

To sum up, the Git branching model is lightweight compared to other version control systems; this is why it’s so easy and cheap to create branches in Git, as the whole code doesn’t need to be copied to the branch creating a large amount of duplicate files, as opposed to other VCS tools.

What are some common Git branching strategies?

GitFlow

Considered to be a bit complicated and advanced for many of today’s projects, GitFlow enables parallel development where developers can work separately from the master branch on features where a feature branch is created from the master branch.

Afterwards, when changes are complete, the developer merges these changes back to the master branch for release.

This branching strategy consists of the following branches:

  • Master 
  • Develop
  • Feature- to develop new features that branches off the develop branch 
  • Release- help prepare a new production release; usually branched from the develop branch and must be merged back to both develop and master
  • Hotfix- also helps prepare for a release but unlike release branches, hotfix branches arise from a bug that has been discovered and must be resolved; it enables developers to keep working on their own changes on the develop branch while the bug is being fixed.

The main and develop branches are considered to be the main branches, with an infinite lifetime, while the rest are supporting branches that are meant to aid parallel development among developers, usually short-lived.

Git Branching Illustration
Author: Vincent Driessen
source
License: Creative Commons BY-SA

GitFlow pros and cons

Perhaps the most obvious benefit of this model is that it allows for parallel development to protect the production code so the main branch remains stable for release while developers work on separate branches.

Moreover, the various types of branches make it easier for developers to organize their work. This strategy contains separate and straightforward branches for specific purposes though for that reason it may become complicated for many use cases. 

It is also ideal when handling multiple versions of the production code.

However, as more branches are added, they may become difficult to manage as developers merge their changes from the development branch to the main. Developers will first need to create the release branch then make sure any final work is also merged back into the development branch and then that release branch will need to be merged into the main branch.

In the event that changes are tested and the test fails, it would become increasingly difficult to figure out where the issue is exactly as developers are lost in a sea of commits.

Indeed, due to GitFlow’s complexity, it could slow down the development process and release cycle. In that sense, GitFlow is not an efficient approach for teams wanting to implement continuous integration and continuous delivery. 

Thus, in that case a much simpler workflow such as GitHub Flow is recommended.

GitHub Flow

GitHub Flow is a simpler alternative to GitFlow ideal for smaller teams as they don’t need to manage multiple versions.

Unlike GitFlow, this model doesn’t have release branches. You start off with the main branch then developers create branches, feature branches that stem directly from the master, to isolate their work which are then merged back into main. The feature branch is then deleted.

The main idea behind this model is keeping the master code in a constant deployable state and hence can support continuous integration and continuous delivery processes.

Git Branching Illustration

GitHub Flow pros and cons

Github Flow focuses on Agile principles and so it is a fast and streamlined branching strategy with short production cycles and frequent releases. 

This strategy also allows for fast feedback loops so that teams can quickly identify issues and resolve them.

Since there is no development branch as you are testing and automating changes to one branch which allows for quick and continuous deployment.

This strategy is particularly suited for small teams and web applications and it is ideal when you need to maintain a single production version.

Thus, this strategy is not suitable for handling multiple versions of the code.

Furthermore, the lack of development branches makes this strategy more susceptible to bugs and so can lead to an unstable production code if branches are not properly tested before merging with the master-release preparation and bug fixes happen in this branch. The master branch, as a result, can become cluttered more easily as it serves as both a production and development branch.

A further disadvantage is as this model is more suited to small teams and hence, as teams grow merge conflicts can occur as everyone is merging to the same branch and there is a lack of transparency meaning developers cannot see what other developers are working on.

GitLab Flow

GitLab Flow is a simpler alternative to GitFlow that combines feature-driven development and feature branching with issue tracking.

With GitFlow, developers create a develop branch and make that the default while GitLab Flow works with the main branch right away.

GitLab Flow is great when you want to maintain multiple environments and when you prefer to have a staging environment separate from the production environment. Then, whenever the main branch is ready to be deployed, you can merge back into the production branch and release it.

Thus, this strategy offers propers isolation between environments allowing developers to maintain several versions of software in different environments.

While GitHub Flow assumes that you can deploy into production whenever you merge a feature branch into the master, GitLab Flow seeks to resolve that issue by allowing the code to pass through internal environments before it reaches production, as seen in the image below.

Therefore, this method is suited for situations where you don’t control the timing of the release, such as an iOS app that needs to go through the App store validation first or when you have specific deployment windows.

Trunk-based development

Trunk-based development is a branching strategy that in fact requires no branches but instead, developers integrate their changes into a shared trunk at least once a day. This shared trunk should be ready for release anytime.

The main idea behind this strategy is that developers make smaller changes more frequently and thus the goal is to limit long-lasting branches and avoid merge conflicts as all developers work on the same branch. In other words, developers commit directly into the trunk without the use of branches.

Consequently, trunk-based development is a key enabler of continuous integration (CI) and continuous delivery (CD)  since changes are done more frequently to the trunk, often multiple times a day (CI) which allows features to be released much faster (CD).

This strategy is often combined with feature flags. As the trunk is always kept ready for release, feature flags help decouple deployment from release so any changes that are not ready can be wrapped in a feature flag and kept hidden while features that are complete can be released to end-users without delay. 

Trunk-based development pros and cons

As we’ve seen, trunk-based development paves the way for continuous integration as the trunk is kept constantly updated.

It also enhances collaboration as developers have better visibility over what changes other developers are making as commits are made directly into the trunk without the need for branches. This is unlike other branching methods where each developer works independently in their own branch and any changes that occur in that branch can only be seen after merging into the main branch.

Because trunk-based development does not require branches, this eliminates the stress of long-lived branches and hence, merge conflicts or the so-called ‘merge hell’ as developers are pushing small changes much more often. This also makes it easier to resolve any conflicts that may arise.

Finally, this strategy allows for quicker releases as the shared trunk is kept in a constant releasable state with a continuous stream of work being integrated into the trunk which results in a more stable release.

However, this strategy is suited to more senior developers as this strategy offers a great amount of autonomy which non-experienced developers might find daunting as they are interacting directly with the shared trunk. Thus, for a more junior team whose work you may need to monitor closely, you may opt for a Git branching strategy. 

Additionally, in fast-paced environments using trunk-based development, feature flags can provide the flexibility needed to ship incomplete features safely.

How to choose the best branching strategy for your team

When first starting out, it’s best to keep things simple and so initially GitHub Flow or Trunk-based development may work best. They are also ideal for smaller teams requiring only a single version of a release to be maintained. 

GitFlow is great for open-source projects that require strict access control to changes. This is especially important as open-source projects allow anyone to contribute and so with Git Flow, you can check what is being introduced into the source code.

However, GitFlow, as previously mentioned, is not suitable when wanting to implement a DevOps environment. In this case, the other strategies discussed are a better fit for an Agile DevOps process and to support your CI and CD pipeline.

The following table summarizes the strategies discussed in this article and which strategy is appropriate in which context:

Product type and its release methodTeam sizeCollaboration maturityApplicable mainstream branch mode
AllSmall teamHighTrunk-Based Development (TBD)
Products that support continuous deployment and release, such as SaaS productsMiddleModerateGitHub-Flow and TBD
Products with a definite release window and a periodic version release cadence, such as iOS appsMiddleModerateGit-Flow and GitLab-Flow with release branch
Products that are demanding for product quality and support continuous deployment and release, such as basic platform productsMiddleModerateGitLab-Flow
Products that are demanding for product quality and have a long maintenance cycle for released versions, such as 2B basic platform productsLargeModerateGit-Flow

To sum up, there is no such thing as the perfect strategy. The strategy you choose will depend on your team and the nature and complexity of your project and so this should be evaluated on a case-by-case basis.

It’s also fine to start off with one strategy and adapt it over time according to your needs. Needless to say, whatever strategy you end up choosing should aim to increase your team’s productivity by giving them a clear and consistent strategy to organize their work.

💡 Pro Tip: Want to personalize developer experiences across branches or environments? Explore our Personalization Guide for insights.

Subscribe to
our Newsletter

bloc Newsletter EN

We will process and store your personal data to respond to send you communications as described in our  Privacy Policy.

Article

14min read

Everything You’ve Ever Wanted to Know About Landing Page Design

You’ve spent months building your brand and getting your website just right, but it’s all for nothing if you can’t turn your hard work into sales. And landing pages are one of the best resources you can use to optimize your conversions. Well-designed landing pages can lead customers to specific products or services, encourage them to take immediate action and capture contact details to build your customer base.

Landing pages are highly effective conversion tools
Landing pages are highly effective conversion tools (Source)

Landing pages have conversion rates ranging from 3% to 11.45% and higher, depending on the features they include. How well your page performs depends entirely on how well you’ve designed it and running tests on your page can help you continuously find the winning formula.

What is a landing page?

Landing pages are website pages designed to target a specific visitor according to a particular demographic, interest, or buying behavior. Your landing page should attract leads in the most effective way possible and then convert your visitors into buyers or nudge them towards taking another kind of action.

Landing pages are designed to encourage exploration and could have a number of goals. Technically, any page on your website can become a landing page for a campaign, but this could distract your customers and send them down a rabbit hole instead of focusing on the action you want them to take. Good landing pages have a singular focus or call to action (CTA), making them excellent marketing and lead generation tools.

Why is landing page design so important?

Landing pages let you nudge your leads straight towards a conversion through strategically placed call to action elements like links, forms, buttons, and others. A well-designed landing page lures visitors through a message that piques their interest, like a discount, a piece of content they’d like to read, or a free trial to test a product.

Continuously testing your pages
Landing pages target customers based on specific demographics, like browsing behavior (Source)

While it doesn’t fully show off your brand’s personality, it does lay the groundwork for getting to know it better. When a customer clicks on a call to action, they want to find more information about whatever has caught their eye, and that’s when you’ll convert them from a visitor to a solid lead or even a paying customer.

Aside from optimizing your users’ actions, landing pages make it easy to track visitors and modify your pages as required. Through A/B testing, one item on your landing page is changed on the variation to determine the impact of the change.

The importance of lead capture landing pages

Lead capture landing pages (sometimes called squeeze pages) can also gather important customer details (such as names, email, phone numbers). Lead capture landing pages offer your customers something of interest (e.g., a free trial or e-book) in exchange for completing a short form that collects their personal information.

You can use these personal details to target them in the future, with email campaigns, social media advertising, or follow-up calls by your sales representatives. Targeting potential customers strengthens the likelihood of a conversion down the line.

The essential elements of a landing page

A landing page should always have one conversion goal. From headlines to images to buttons, every element should bring you closer to that objective.

Clear and effective copywriting

An excellent landing page needs punchy, clear copywriting to convert. You should describe the benefits of your product/service and what your company does as concisely as possible. Don’t overstuff your landing page with copy that doesn’t add value!

A few copywriting tips to bear in mind:

  • Always direct your visitors to the primary call to action with your copy.
  • Keep sentences short and to the point.
  • Avoid using too many adverbs (quickly, obviously, actually).
  • Instead of passive voice, use active voice to inspire action.
  • Edit your work to delete anything that adds more detail than necessary.

Visually attractive and clear CTAs

Your call to action (CTA) is the most important element on your landing page. When you create your CTA, use copy that inspires the visitor to continue along their journey with you. Compare generic calls to action like “Click Here” or “Submit” to powerful statements like “Yes, I want to save money” or “Update my wardrobe.” The latter sounds better!

Always make sure that your CTA button stands out from the other elements on the page. Follow the example set by the Dutch watch brand Cluse: When their team noticed the bounce rate for their landing pages was high and that not many users advanced to the product display pages, it became evident that the CTA on the page wasn’t clear enough.

By changing the call to action used in their landing page design to best match practice guidelines, they instantly saw an uplift in conversions and sales. The winning variation increased the click-through rate to their product display page by 2.39% and realized a 1.12% uplift in transactions.

Eye-catching headers

Good landing pages have simple, compelling and uncluttered headers. If you include an image, make sure it’s related to your product or service. Keep all the action above the fold and use directional cues to steer visitors to that all-important CTA button. Additionally, you should avoid including distracting elements like links or phone numbers.

Social proof

People will conform to the majority in order to be accepted or liked. This is known as social proof. If a prospect sees that another person likes a product or has had a positive experience with your company, your odds of conversion go up.

When you’re browsing a landing page and see a testimonial from an industry expert you respect, that’s social proof. When you’re cruising a pricing page and you see that an industry giant is already using the tool, that’s social proof. When you sign up for a demo because you know the tool solved the exact problem you have for a similar company, that’s social proof.

Think of it as borrowing third-party influence to sway potential customers. Brightlocal found that the average consumer reads at least ten reviews before trusting a business. Your odds of converting goes up when you see that others had used the product before them and were happy with the end result.

Social proof may include customer reviews, a list of existing customers, user testimonials and awards you may have earned. Take a page from Decathlon’s playbook: By testing different options, you can also identify which works best for winning over your customers!

A unique selling proposition (USP)

What makes you different from everyone else? You don’t need to be more advanced or offer huge discounts; you just need a convincing brand promise. Are you the fastest? Most reliable? Most knowledgeable? You only have a few lines of copy and limited visuals to get your point across, so be short and sharp.

Hero images

First impressions are essential — and when it comes to website optimization, they’re more important than ever! A hero image is a large banner that appears at the top of your page, usually occupying the full length of the screen. Look for an image that represents (or is relevant) to your product or company. You can even include a call to action and/or a text overlay to guide your users down the conversion funnel.

Additional information in the footer

Remember that even though you never want to distract customers from the call to action, you’ll still want them to find more information about your company if they don’t convert immediately.

Keep your calls to action and more compelling arguments above the fold, but include additional information like newsletter sign-ups, links to your social media pages, or ‘About us’ pages in the footer for customers that need to know a little more about you before proceeding.

Landing pages should be simple and focus on the call to action
Landing pages should be simple and focus on the call to action (Source)

How to design and optimize your landing pages

Now that you understand some of the best practices for designing high-converting landing pages, let’s dig into the nitty-gritty of your landing pages’ design. Here are ten best practices to design a landing page that converts successfully:

1. Identify your target audience and their needs

Designing a visually stunning landing page doesn’t necessarily mean it’s effective. Truly great landing pages understand what visitors are looking for and provide quality content tailored to your target audience. Before designing your page, establish who it’s for and what they would like to know. Keep testing variations of the page to see which elements resonate the most with your audience and your landing page can become a powerful conversion tool.

2. Use strategic and relevant hero images

There should be a clear connection between your brand and the hero image you display on your landing page. Misplaced images can confuse visitors or create a poor impression of the brand. Make sure that the image you use fosters an instant connection between you and your users by either answering a question, nudging them to advance down the conversion funnel, or just encouraging them to find out more about you.

3. Refine your headlines

We’ve already spoken about the role copywriting plays in conversion, so make sure that you continually test and refine your headlines. Landing page headlines promote your value proposition, while the subheadings provide further explanations. Keep these short, sharp and to the point. If you aren’t sure which value proposition to promote, try testing different versions to see which version resonates the most with visitors and results in the most click-throughs.

4. Keep navigation simple

Landing pages have to be optimized to create the best user experience possible. Keeping navigation simple, intuitive and straightforward will boost user retention and lead generation while driving your core message home. ECCO Shoes are a great example of this: By making their call to action button larger and repositioning it above the fold, cutting a few visual distractions and adding icons highlighting special offers like free delivery, their new landing page was able to outperform the original by over 17%!

5. Harmonize your colors

Colors can evoke powerful emotions or cause confusion. Use color strategically and sparingly on your landing page so it highlights the most important elements like your call to action, add-to-cart button or contact forms. You can also use negative space to break up the page and make it easier to digest the most important information.

6. Place your important elements above the fold

The ‘above the fold’ section is the part of your website that’s visible in the browser without scrolling down. It’s the first thing people see, so make sure you grab their attention with compelling imagery, copy and headers.

7. Make sure it displays properly across devices

Today’s consumers are using a host of different devices and operating systems. This means your website has to display properly across all of them if you want their business. Ensure that your landing pages are optimized to display correctly on all available platforms.

8. Optimize your site’s load times

Your site’s loading time affects your user experience and your Google ranking. Slow websites contribute to high bounce rates and cart abandonment. You can optimize your load times by enabling compression, using web-friendly imagery and keeping redirects to a minimum.

9. Improve your SEO to increase traffic and conversions

SEO (Search Engine Optimization) is a complex subject, but anyone can make small tweaks to their landing page to improve their ranking. Ensure that your title tags and meta-descriptions are accurate and relevant to what visitors will find on your page. Always include the main keywords you want to rank for, but don’t overstuff your page with them; it will negatively affect your user experience and Google may penalize you for it.

Effective landing pages can lead to increased sales (Source)

10. Perform testing on your landing pages

A/B testing allows you to compare two versions of the same page to see which version resonates the most with your users. By changing an element on one page, you can compare the two to see which changes will increase conversions. You can learn more about testing on your landing page in this article, or try our A/B testing tool.

A/B testing has numerous benefits for your landing pages and your business because it reveals incredible insights that can be used to:

  • Improve user engagement by learning which messages/images resonate with customers;
  • Present more relevant messages and content that customers actively respond to;
  • Reduce bounce rates by improving relevance;
  • Increase conversion rates;
  • Deliver quick results and improvements that provide a return on investment.

Common landing page mistakes

We’ve covered what you should do when you are designing your landing page, but there are also a few things you should avoid doing:

  • Multiple CTAs: Too many calls to action dilute your message and decrease the likelihood of performing a conversion.
  • Broken CTAs: If your call to action doesn’t link to the right page or function properly, all of your efforts are wasted.
  • Low-resolution images/no images: Copy alone won’t sell your product or service. Use high-resolution, web-optimized images to boost your brand and convey your message visually.
  • Poorly written copy: Spelling mistakes and grammatical errors impact the trust that consumers have in your brand.
  • Lengthy forms: If your lead capture forms are too long, your customers will get frustrated and may give up halfway through. You’ll lose the information — and their business.

Examples of great landing page design

While landing page design is an ongoing process and you need to keep constantly optimizing it, there are a few brands with really great landing pages to inspire your own.

Coinbase

Coinbase example

Coinbase uses a stylish and focused lead generation page with a clear message and unique value proposition. While trading cryptocurrency is a complex topic, the landing page simply asks you to enter your email address to get started. This example works because the call to action is clear, the copy is straightforward and the design is uncluttered.

Xero

Xero example

Xero uses negative space and compelling copy to get its message across. There are two call to action buttons (with the same message) to steer visitors in the right direction. Xero’s page is attractive and colorful, uncluttered and emphasizes the call to action button, making it highly effective.

monday.com

Monday example

Monday.com uses colorful buttons to encourage visitors to create their free account. They’ve also added compelling social proof messages by mentioning the number of visitors to the site. This use of social proof and a clear, uncluttered layout — coupled with direct, pointed copy — increases their landing page’s ability to convert.

Astra

Astra example

Astra uses compelling copy in their click-through button that assures users that they can secure your website against hackers in just three minutes. They’ve also added some big-name logos in their footer to build trust in the brand. The tagline, ‘Are you next?’ is compelling, with a solid and distinct call to action leading prospects to the sign-up page.

Take your landing pages to the next level

These tips provide a great starting point for designing a high-converting landing page, but no one gets it right the first time. Building an effective landing page requires ongoing optimization and innovation to determine what resonates with your audience.

Continuously testing your pages leads to new insights and continual improvements
Continuously testing your pages leads to new insights and continual improvements (Source)

Experimentation can help your brand improve the performance of your landing pages. Continuously testing your pages leads to new insights and improvements that’ll help you constantly adapt to new customer preferences even as they are being formed.

Looking for inspiration to take your landing pages to the next level? Check out our e-book, “50 Tests You Should Know For Website Optimization”: It contains 50 successful experiments from e-commerce businesses who have continuously optimized their websites to offer relevant and personalized experiences.