Git flow release branches and tags - with or without "v" prefix

GitNaming ConventionsGit Flow

Git Problem Overview


I have seen multiple contradicting definitions on various git flow related websites. Is there an official recommendation or single source of truth?

Branches: release-1.2.3 or release-v1.2.3

Tags: 1.2.3 or v1.2.3

Git Solutions


Solution 1 - Git

Well, basically it is a matter of preference, but I prefer the version with the v, as Semver does it that way and I try to follow that specification as close as possible to get a sane versioning.

It also makes filtering for those Tags easier, as you can press v and then the TAB-key for autocompletion: This will list all the tags (and maybe a few branches), whereas there are several digits a tag could start with.

Edit: In 2019, Semver added a section to their FAQ, clarifying that the "v" prefix is "a common way to indicate a version number" (see "Is “v1.2.3” a semantic version?").


See also: https://stackoverflow.com/questions/2006265/is-there-an-standard-naming-convention-for-git-tags

Solution 2 - Git

Since v stands for version, tags are generally named vX.Y.Z, with X.Y.Z following Semantic Versioning 2.0.0.

This allows for branches X.Y.Z to co-exist with those tags, without having to deal with error message like "fatal: Ambiguous object name" (as in "Ambiguous Names with GIT?").

Note that the tags for Git itself have recently been "adapted" for a surprising reason: see "Code version change “rules”".

Solution 3 - Git

https://semver.org/#is-v123-a-semantic-version

> Is “v1.2.3” a semantic version? No, “v1.2.3” is not a semantic > version. However, prefixing a semantic version with a “v” is a common > way (in English) to indicate it is a version number. Abbreviating > “version” as “v” is often seen with version control. Example: git tag > v1.2.3 -m "Release version 1.2.3", in which case “v1.2.3” is a tag > name and the semantic version is “1.2.3”.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionfriederbluemleView Question on Stackoverflow
Solution 1 - GitTimWollaView Answer on Stackoverflow
Solution 2 - GitVonCView Answer on Stackoverflow
Solution 3 - GitPierView Answer on Stackoverflow