Easy Ways To Facilitate Gitflow

Introduction

The diagram below is the most famous one describing Gitflow.
However, it is not easy to understand at a first glance. There are tons of alternative and different ways to apply Gitflow to your project. In this post, introduce the easiest and comprehensible strategy that I use.


git_flow

Develop, Staging & Master(Main)

First, check the simple workflow for developing projects for most companies (including start-ups) below.

Project Planning
Developing Process
Quality Assurance
Release

In the workflow, the most important process is improving and checking every single detail for the service and product.
If those important processes apply to the developing process with git, the processes look like the way on the diagram below.

Develop
Staging
Master

Names mentioned above, Develop, Staging, and Master, can be changed up to the situation, plus they are just branch names. These are conventional naming rules: Develop, Staging, and Master.

Develop

Mostly develop branch is giving a developer a chance to freely test their own work for no cost, so that developer easy to see how their job is applied to service, not the local but on the browser or other runtime environment.

The feature branch is basically branching out from the Master.
At this point, the Master, Staging, and Develop branches are identically the same.

Features

master
feature/yourjob
f-XXXX-NNNN
feature/soom
...
Develop

Naming feature branch is also up to the company’s or team’s convention.
They use feature/[developer's name] or f-[ticket number] or other variation.

Staging

The Staging branch is for QA(Quality Assurance).
After developers confirm and test their own jobs from the Develop branch, it pushes and merges Develop branch to the Staging branch.

If developers are perfect (they aren’t), Inevitably, there are feedbacks from QA.
If so, back to your Feature branch then pushes and tested to the Develop branch.
Then pushes again to the Staging branch and confirmed from QA.

feature/yourjob
Develop
f-XXXX-NNNN
feature/soom
...
Staging

Master (Main)

After QA is confirmed, it is now time to pushes & merges to the Master branch.
Then, release the service to the public.

Staging
Master
Release

Hotfix & Other Git flow

Hotfix branch out
QA Confirmed
Planner/Designer Confirmed
feature/...
Master
Staging
Develop

Here is another Git flows example you can apply. Developer can test on Develop branch, then not merging from Develop to Staging, but directly pushes to Staging branches. After QA confirmed, Developer also just pushes to the Master branch.
It also can be applied emergency situation such as Hotfix.

Conclusion

That’s it!
When I first heard about Git flow, I thought what the heck was that?.
However, now, I think it is just a reasonable approach for managing the development process stable and conservative.
You can easily adapt soon this Git flow soon.