Pergunta

I was discussing git-flow with my coworkers and they brought up an interesting point. Why not tag releases off of develop instead of master? Master seems to exist for the sole purpose of tags. Maybe I missed something obvious when I read the entire article for git-flow.

Foi útil?

Solução

You cannot simply tag develop for 2 reasons: release branches and hotfixes branches.

release branches - once you create your release branch from develop to prepare for a release, then you have your "release candidate" that will only get limited changes while the main development branch develop may continue to get additional commits not intended for this release, e.g. changes intended for a future release. Even if you merge the changes from the release branch into develop, you will still have additional commits on develop that aren't intended for release, i.e. you can't tag develop. Also note that release branches are temporary branches that go away after release while master (and develop) are long-lived "permanent" branches.

hotfix branches - A similar situation exists for a hotfix - you create a hotfix temporary branch (from your last release) to allow you to isolate which commits go into your hotfix release (just specific bugfixes).

You could tag the final commits of the release branches and hotfix branches and/or make those branches long-lived branches, but git-flow model uses master to track and connect the releases.

Outras dicas

master exists by convention. If you want to establish a different convention you can. the idea of a master branch may or may not suite your purposes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top