Hi,
We are migrating to Stash (renamed to Bitbucket Server) and new to Git.
For a repository, I had set up the following branching model:
- Development Branch: Use default branch
- Production Branch: <none currently selected>
- Feature prefix is issue/
- Release prefix is release/
My intent was that master contains only the code that has been released to production. For example, if we last deployed release 3.3 to production then head of master contains only release 3.3 code.
We work on two releases at the same time (e.g., 3.4 and 3.5) so we have long-lived release branches that really never go away.
When working on a feature, we branch from a release branch. In this example, if we finish a feature in 3.4 then we could use automatic merge to get the change into 3.5.
It appears that automatic merge also wants to merge changes into the Development branch. As configured in our repository, that would be master.
Is that correct?
To make this work out as intended, do I need to let master become a development branch and let automatic merge update it? Then make a separate production branch that we manually merge a release into once the release goes into production?