GitFlow

GitFlow is a list of rules to keep a repo’s history organized, and is used to make the release process, bug fixes, and feature creation easier.


Configuration

First initialize GitFlow in Preferences GitFlow and change the default branch names if desired.

Once initialized, two branches will always be present: master (The version in production) and develop (The version currently in development for the next release).

Changes are merged into these branches. If you do not currently have these branches in your local repository, GitKraken will create them when GitFlow is initialized.


Usage

With GitFlow initialized in your repo, you will get an additional menu in the left panel. Start or finish any of your GitFlow branches here.

Create new GitFlow branches by clicking the green button on the GitFlow menu on the left.

Or whenever you add a branch, include the prefix for the GitFlow branch type i.e. feature/branch-name. Any branches that do not have the prefix, will be displayed in the local repository section, but not in the GitFlow menu.

Note: GitFlow has the benefit of adding all features, hot-fixes, and release branches in different folders.

GitFlow branches can be pushed to a remote which is the same as 'Publishing' the GitFlow object in the command line.

Feature

Feature branches are used for new features or bug fixes. They typically exist only in local repos and aren't shared with others.

When finishing a feature branch, GitKraken will merge the feature branch into develop, and delete the feature branch from the local repository.

You also have the option to rebase the feature branch on top of develop.

Release

Releases are major and minor versions of your product. They're often shared with other collaborators working on the same version.

When finishing a release, the release branch is merged into both master and develop branches. This creates a tag with the release name for future reference.

Hotfix

Hotfixes are the same as Releases in GitFlow, except hotfix branches are created on top of master, while release branches are created on top of develop.

Hotfixes are for quickly pushing out a change to your production branch. Common examples of hotfixes are fixing typos, and bugs that need to be pushed out as soon as possible to production.

When finishing a hotfix, GitKraken will merge the changes into both master and develop.