Skip to main content
Multiwoven is using the git-flow workflow for managing git branches. Git flow repository operations are done using a git extension called gitflow. Installation instructions for gitflow can be found here

Gitflow 101

1. A develop branch is created from main

Without the git-flow extensions
git branch develop
git push -u origin develop
When using git flow extension
$ git flow init

Initialized empty Git repository in ~/project/.git/
No branches exist yet. Base branches must be created now.
Branch name for production releases: [main]
Branch name for "next release" development: [develop]

How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []

$ git branch
* develop
 main

2. Feature branches are created from develop

Create a feature branch
Without the git-flow extensions
git checkout develop
git checkout -b feature_branch
When using git flow extension
git flow feature start feature_branch
Merging feature branch to develop
Without the git-flow extensions
git checkout develop
git merge feature_branch
When using git flow extension
git flow feature finish feature_branch

3. A release branch is created from develop

Create a release branch
Without the git-flow extensions
git checkout develop
git checkout -b release/0.1.0
When using git flow extension
git flow release start 0.1.0
Switched to a new branch 'release/0.1.0'
Merging release branch to main
Without the git-flow extensions
git checkout main
git merge release/0.1.0
When using git flow extension
git flow release finish '0.1.0'

4. If an issue in main is detected a hotfix branch is created from main

Create hotfix branch
Without the git-flow extensions
git checkout main
git checkout -b hotfix_branch
When using git flow extension
git flow hotfix start hotfix_branch
Merge hotfix branch to main and develop
Without the git-flow extensions
git checkout main
git merge hotfix_branch
git checkout develop
git merge hotfix_branch
git branch -D hotfix_branch
When using git flow extension
$ git flow hotfix finish hotfix_branch

Release process

1. Pull the latest develop branch and master branch in your local machine.

git checkout master
git pull
git checkout develop
git pull
git fetch --tag

2. Create feature branch from develop with the relevant release version

git flow release start '0.0.1-beta'

3. Add any last minute changes to release branch

4. Merge release branch back to main and develop

git flow release finish '0.0.1-beta'

5. Push master branch, develop branch and the tags

# Push develop
git checkout develop
git push --no-verify

# Push master
git checkout master
git push --no-verify

# Push tags
git checkout develop
git push --tags --no-verify

6. Publish release notes - TODO