Just learning Git and I am trying to understand the best workflow for our
team. For arguments sake, assume we are using Github for
our private repositories and using Heroku for hosting.
I'd like to have a workflow where our development team commits changes to a
development branch. Someone (likely me) will be responsible for cherry
picking commits from the development branch (or branches maybe?) and
pulling them into a QA branch which is then pushed to our Heroku QA
Once QAed and approved, I'd like to pull (merge?) the entire QA branch into
the production branch and push that to our Heroku production repository.
1. At a high level, does this make sense and is there a better way? The
goal is mostly to allow concurrent development while allowing us to
selectively deploy specific changes.
2. Is it best to have separate repositories for each developer and have
them push changes, once complete, to the main development repo? Or should
everyone just commit their code to the main development repo?
3. Related to above: Should each developer have a separate branch or a
4. Are there any tools to facilitate a workflow like this? Obviously
command line is immensely powerful. Ive been using SourceTree
and liking it so far. Also hear Tower is great. GitHub for Mac(\Windows)
is pretty limiting.
I've read a few blogs\articles describing some workflows similar to this
but I havent really been able to wrap my head around it entirely. Any
links would be appreciated.
Thanks in advance!