Re: "man git-tag" inconsistent about whether you can tag non-commit objects
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 25, 2018, 08:47 UTC
- Message-ID
- <xmqqh8mwnmus.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <87muwo6uwq.fsf@evledraar.gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
Show 14 quoted lines
>> As that sentence talks about a lightweight tag (i.e. a reference in >> refs/tags/ hierarchy that directly points at an object of any kind), >> another possibility would be to say >> >> Otherwise a tag reference that directly points at the given >> object (i.e. lightweight tag) is created. > > Related, this recent patch of mine: > https://public-inbox.org/git/20180429202100.32353-6-avarab@gmail.com/#t > > I.e. might be worth talking about this briefly in the git-tag manpage as > well, i.e. that you can create a lightweight "tag" to a commit, but then > depending on where you push it it becomes either a branch or a tag, > which may not be intuitive to users...
I am not sure if I agree. People won't get confused, unless they think too much and pedantically.
If you make refs/tags/$name point at a commit, it becomes a lightweight tag, if you make refs/heads/$name point at a commit, it becomes a local branch, if you make refs/remotes/$remote/$name point at a commit, it behaves as a remote-tracking branch for the named $remote. Anywhere else, it is just a random ref that happens to point at a commit.
And notice that I never said "push" in the above. The verb I used is "make" and that is deliberate. It does not make any difference if you make such a ref point at a commit by pushing into a repository, fetching from elsewhere, or running "git branch", "git tag", "git update-ref" locally.