A tag is a name for a commit. So is a branch name:
$ git rev-parse master
d2ecc46c0981fb829fdfb204604ed0a2798cbe07
$ git rev-parse v2.21.0^{commit}
8104ec994ea3849a968b4667d072fedd1e688642
Now, you might wonder what that ^{commit}
is doing in there. That's because a tag is often also a name for an annotated tag object, which then names the commit:
$ git rev-parse v2.21.0
2bb64867dc05d9a8432488ddc1d22a194cee4d31
$ git cat-file -p 2bb64867dc05d9a8432488ddc1d22a194cee4d31
object 8104ec994ea3849a968b4667d072fedd1e688642
type commit
tag v2.21.0
tagger Junio C Hamano <gitster@pobox.com> 1551023739 -0800
Git 2.21
-----BEGIN PGP SIGNATURE-----
[snip]
If you want to start a branch at the commit selected by a tag, just do that:
git branch newbranch v2.21.0
You don't need the ^{commit}
as git branch
itself figures that out for you:
$ git branch newbranch v2.21.0
$ git rev-parse newbranch
8104ec994ea3849a968b4667d072fedd1e688642
What you probably should not do is remove the tag name and create a new branch name identifying the right commit, nor create a branch name that is the same as the tag name. Both of these are allowed but neither produces happy-making results.
In particular, once a tag has gotten around, every Git repository that has picked it up since then knows that it is a tag name and that it means that commit. Now you plan to change that fact? That's not nice to those other Git repositories.
Meanwhile, if you make a branch and tag name that are spelled the same, Git doesn't always resolve things the way you want. That is:
$ git branch v2.21.0 v2.21.0
$ git rev-parse v2.21.0
warning: refname 'v2.21.0' is ambiguous.
2bb64867dc05d9a8432488ddc1d22a194cee4d31
Sometimes, the name v2.21.0
will now mean the branch name. Sometimes it will mean the tag. Since branch names, by design, move from one commit (the old tip of the branch) to another (the new tip of the branch) as the branch grows, the two names will, in the future, resolve to two different commits.
Just use a different name. (And, as ROOT points out, you can create the branch after doing a checkout of the tag, by name; or you can do git checkout -b new-branch tag-name
to do it all at once.)