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)
developbranch into your feature branch before finishing it. That way, you can solve any conflicts in your local workspace without breaking anything for the rest of the team.