Question: The "*Master branch*" is for a product which is ready and can be downloaded by end-users.

But there are "*release branches*" - I have no ideas who these branches are for. Release for customers? For QA?

[Image showing the branches](http://www.flickr.com/photos/appleboy/5488984404/)

Answer: 
As explained in the original [post by V.Driessen](http://nvie.com/posts/a-successful-git-branching-model/) :

**Master** is a permanent branch which always reflects a production-ready state. So yes, it is for ready-product which can be downloaded on the market by user.

**Release** is a temporal supporting branch to support preparation of a new production release. This means mainly bug fixing, documentation, etc as pointed out by minas.
In the diagram which you linked to, yes, `master` is used for a "ready product" which is released to users. (Not everybody uses `master` this way, though.)

In the diagram, each time the team is preparing a new "ready product" release, they create a new "release" branch. While they are preparing the release, they don't add any new features to the "release" branch -- adding new features could cause new bugs, and they are trying to get the "release" version as stable as possible before it goes public. They do add commits to the "release" branch to fix any problems which are found during final testing, polish up rough spots, etc. So creating the "release" branch marks the "feature freeze" point -- where they decide that only the features they have already developed are going to make it into the next public release.

Once they are ready to go public with a new version of the product, they merge the "release" branch into `master` and tag the commit which is used to build the publicly downloadable product. (If they are releasing version 1.0, they might tag the commit `1.0`, and so on.)

At the same time, as they work on new features, they create new "feature" branches (branching out of `develop`) and commit onto them. When a new feature is working, they merge its branch back into `develop`. `develop` is always moving forward.