danielkummer.github.io Open in urlscan Pro
185.199.111.153  Public Scan

URL: http://danielkummer.github.io/git-flow-cheatsheet/
Submission: On April 07 via manual from PL — Scanned from PL

Form analysis 0 forms found in the DOM

Text Content

Fork me on GitHub


GIT-FLOW CHEATSHEET

created by Daniel Kummer

efficient branching using git-flow by Vincent Driessen

translations: English - Castellano - Português Brasileiro - 繁體中文(Traditional
Chinese) - 简体中文(Simplified Chinese) - 日本語 - Türkçe - 한국어(Korean) - Français -
Italiano - Nederlands - Русский (Russian) - Deutsch (German) - Català (Catalan)
- Română (Romanian) - Ελληνικά (Greek) - Українська (Ukrainian) - Tiếng Việt
(Vietnamese) - Polski - العربية - فارسی - Lietuviškai (Lithuanian) -
Azərbaycanca (Azerbaijani) Bahasa Indonesia


ABOUT

git-flow are a set of git extensions to provide high-level repository operations
for Vincent Driessen's branching model. more

★ ★ ★

This cheatsheet shows the basic usage and effect of git-flow operations

★ ★ ★


BASIC TIPS

 * Git flow provides excellent command line help and output. Read it carefully
   to see what's happening...
 * The macOS/Windows Client Sourcetree is an excellent git gui and provides
   git-flow support
 * Git-flow is a merge based solution. It doesn't rebase feature branches.

★ ★ ★


SETUP

 * You need a working git installation as prerequisite.
 * Git flow works on macOS, Linux and Windows

★ ★ ★


MACOS

Homebrew

> $ brew install git-flow-avh

Macports

> $ port install git-flow-avh


LINUX

> $ apt-get install git-flow


WINDOWS (CYGWIN)

> $ wget -q -O - --no-check-certificate
> https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh
> install stable | bash

You need wget and util-linux to install git-flow.

For detailed git flow installation instructions please visit the git flow wiki.


GETTING STARTED

Git flow needs to be initialized in order to customize your project setup.

★ ★ ★


INITIALIZE

Start using git-flow by initializing it inside an existing git repository:

> git flow init

You'll have to answer a few questions regarding the naming conventions for your
branches.
It's recommended to use the default values.




FEATURES

 * Develop new features for upcoming releases
 * Typically exist in developers repos only

★ ★ ★


START A NEW FEATURE

Development of new features starting from the 'develop' branch.

Start developing a new feature with

> git flow feature start MYFEATURE

This action creates a new feature branch based on 'develop' and switches to it




FINISH UP A FEATURE

Finish the development of a feature. This action performs the following

 * Merges MYFEATURE into 'develop'
 * Removes the feature branch
 * Switches back to 'develop' branch

> git flow feature finish MYFEATURE




PUBLISH A FEATURE

Are you developing a feature in collaboration?
Publish a feature to the remote server so it can be used by other users.

> git flow feature publish MYFEATURE




GETTING A PUBLISHED FEATURE

Get a feature published by another user.

> git flow feature pull origin MYFEATURE

You can track a feature on origin by using

> git flow feature track MYFEATURE




MAKE A RELEASE

 * Support preparation of a new production release
 * Allow for minor bug fixes and preparing meta-data for a release

★ ★ ★


START A RELEASE

To start a release, use the git flow release command. It creates a release
branch created from the 'develop' branch.

> git flow release start RELEASE [BASE]

You can optionally supply a [BASE] commit sha-1 hash to start the release from.
The commit must be on the 'develop' branch.

★ ★ ★

It's wise to publish the release branch after creating it to allow release
commits by other developers. Do it similar to feature publishing with the
command:

> git flow release publish RELEASE

(You can track a remote release with the
git flow release track RELEASE command)




FINISH UP A RELEASE

Finishing a release is one of the big steps in git branching. It performs
several actions:

 * Merges the release branch back into 'master'
 * Tags the release with its name
 * Back-merges the release into 'develop'
 * Removes the release branch

> git flow release finish RELEASE

Don't forget to push your tags with git push origin --tags




HOTFIXES

 * Hotfixes arise from the necessity to act immediately upon an undesired state
   of a live production version
 * May be branched off from the corresponding tag on the master branch that
   marks the production version.

★ ★ ★


GIT FLOW HOTFIX START

Like the other git flow commands, a hotfix is started with

> git flow hotfix start VERSION [BASENAME]

The version argument hereby marks the new hotfix release name. Optionally you
can specify a basename to start from.




FINISH A HOTFIX

By finishing a hotfix it gets merged back into develop and master. Additionally
the master merge is tagged with the hotfix version.

> git flow hotfix finish VERSION





COMMANDS


BACKLOG

★ ★ ★

 * Not all available commands are covered here, only the most important ones
 * You can still use git and all its commands normally as you know them, git
   flow is only a tooling collection
 * The 'support' feature is still beta, using it is not advised
 * If you'd like to supply translations I'd be happy to integrate them

★ ★ ★


COMMENTS



Please enable JavaScript to view the comments powered by Disqus.