Our team is now moving to release train deployment model (http://thinking-in-code.blogspot.com/2010/07/train-model-of-software-development.html) and we need tools or method
Hence we would actually merge only features with zero bugs and create new release build
Well... the problem is that the result of the merge (meaning the "0 bugs feature branches" merged) can result in some bug!
A 0-bug feature branch (when develop in isolation) can have bug when considered in integration.
The general git workflow which does follow a release train model would be the gitworkflow (one word)
The idea is to merge the branches you want for the next release to an intermediate transient integration branch (that you can call "integration" or "dev" or "next"...).
That branch is re-created for each new release and allow for testing those feature branches in integration (together).
Then you merge only to master
the ones you actually want for the next release.
You do not merge the integration
branch to master
. Only feature
branches.
See more here and here.
I answered questions about that workflow here.