We are basically using the Git flow documented here: http://nvie.com/posts/a-successful-git-branching-model/. Now some questions have been raised by developers:
- From where do we release the code to production? The release/hotfix branch or the master?
- Need to rollback in release branch, if some features in the current release branch are no longer required.
- We are saying that the release branch will be locked down only to the lead, no code changes will be done here. This is deviated from the Git Flow, and I don't know why.
I have more questions:
- If there is no change in the release branch, why do we even need one? I am from the ClearCase world, and I always have this impression that a branch is not required if there is no change on it.
- Why Git is not using tag a lot. In ClearCase, we baseline/tag the development branch on every build, and we can use baseline/tag to identify a release, no need to create a branch for release. With baseline/tag, we can always take a previous baseline/tag to release, no need to rollback.