I understand how it is possible to tag a blob, or a tree, or even another annotated tag, using a git tag. I understand the architecture and conceptual design that makes this possible.
However, I'm having trouble thinking of real life applications of this (or "real workflow" applications).
Searching here on Stack Overflow I only found one answer that mentions tagging non-commit objects, with advice not to do so.
Under what possible circumstances could it ever be appropriate to tag a non-commit object?
Tagging trees or blobs may be appropriate temporarily in long-running utility programs that manipulate objects directly. Tagging would ensure that git gc
can be safely run in parallel. The utility program would then remove the tags when it's done, when it's created a commit.