(Since I can share the "wealth of information";) ...)
What you are looking at when talking about the master and production branches is a merge workflow .
You can define the workflow that you need with any version control tool you need, and from the point of view of development life cycle management, one of the most complete sets of working parameters for federation is described in this TFS (Team Foundation Server) set, detailed in "TFS Brancing Guide and illustrated in this issue Service in a standard industry plan ."
Closer to git, git flow is a fairly popular merge process.
But you are using DVCS, and its distributed aspect introduces another (orthogonal) workflow: publishing (your git push -u origin prod ). See " Source Control" - Distributed Systems or Distributed - What is the Difference?
Publishing, part of release management, is very different from merging, part of development.
By combining master to prod , you freeze what was consolidated in development and mark it as released.
By clicking it on GitHub, you begin this release process.
source share