gitflow is a branching model for git created by Vincent Driessen. It forms an elegant mental model that is easy to comprehend and allows team members to develop a shared understanding of branching and releasing processes.
Detailed information can be found on A successful git branching model.
The Git Tower team wrote another detailed description on how to use gitflow with a GUI tool.
Basic usage and effect of git-flow operations on the command line:
In a nutshell:
masterholds only releases (and bugfixes)
developholds the latest version under development
developafter the feature is finished and tested
git pull develop)