I use Stash to create, and branch repositories. I use SourceTree to maintain these repositories, including tagging important commits, such as releases. When using the git command line tool to investigate my repositories using 'git ls-remote <repo_url>', I get back the expected response, except that my tags are duplicated in the following fashion:
a71364f2645fc8e27cb079f30cdf81aec38c4895 HEAD
a71364f2645fc8e27cb079f30cdf81aec38c4895 refs/heads/develop
7a8731e3b7d49af653ff67a7c35c928453471839 refs/heads/feature/oozie_fuoll
a71364f2645fc8e27cb079f30cdf81aec38c4895 refs/heads/master
e34fc078e27e129f5241bdf85226629db3c3b5e9 refs/heads/release/rel1
53d29f94fc28d47b118ecc578bec337229abb8c2 refs/tags/1.0.0
29484edfeaf42d1cb277714509fa55e643c2dfe8 refs/tags/1.0.0^{}
The last entry is the one I'm concerned with. I used SourceTree to add a tag with the text '1.0.0', and it created that tag, and one with the text '1.0.0^{}'. Further, I investigated the reference numbers, and the tag with the extra symbols is actually pointed to the correct commit. The other commit reference is not listed.
For now, I can do automation of command-line interaction with my repos via tag by parsing the ^{}, throwing away the bogus tag, and continuing, but that does not seem like the desirable behavior for this system.
Exact steps:
Create a repository in Stash.
Clone it in SourceTree, add filed, and do initial commit.
In SourceTree, add a tag (e.g.: '1.0.0').
On the command line, use git to get the tags using 'git ls-remote <repo_url>'