Tags

Naming a commit, annotating it, and pushing only the tags you meant to.

A tag is a name for a commit that does not move. Branches advance as you commit; tags do not, which is what makes them right for releases.

Tags in the sidebar lists them, and clicking one scopes the history to that tag: the commit it points at and everything that led to it.

Opening the group gives you the field for a new tag, with the existing ones under it.

Opening the group puts a name field and a message field at the top of it, with the tags you already have underneath. So creating one and finding one are the same two clicks, and the message field is right there — which is the difference between an annotated tag and a lightweight one.

The two kinds

  • Lightweight — a name and nothing else.
  • Annotated — a name with a message, an author and a date, stored as a real object in the repository.

Use annotated for anything anyone else will see. A release tag that carries no record of who made it or when is a release tag you will wish you had annotated.

Pushing

Tags are not pushed with commits. Innesta pushes them selectively, so you choose which ones go — a local tag you made while trying something out does not travel just because you pushed a branch.

Deleting

Local tags can be deleted. As with branches, deleting a local tag does not delete the remote one.