github releases are (under the hood). Lightweight git tags + some metadata stored in github (but not in git’s data model itself). Lightweight tags are “just” a pointer/reference to a commit. (they cannot be neither signed or contain messages ,and support basically zero git metadata). They are like git branches, except they never move which commit they point to.
Annotated Tags (aka, full blown ones) consist of a “tag object” (which is like a commit object), and a pointer/reference to the tag object. Annotated tags support messages, signing, a fuck ton of git meta-data and are of course, stored in git’s own data model.
most git operations that work on tags only show/display/work on annotated tags and ignore lightweight tags.
Lightweight tags are mostly intended for making “throwaway” markers/bookmarks on your personal branches etc. By default git
will not push them up the origin. (e.g if you use git push --follow-tags
or have push.followTags
on (git config --global push.followTags true
). (`git push -