# Releases & Tags — GitHub Fundamentals: Collaboration, Pull Requests and Actions

Source: https://www.geekswithgeeks.com/en/github/gh-releases-tags

> Mark versions with Git tags, publish GitHub Releases with notes and assets, and follow semantic versioning.

## Tag a version

A tag is a named pointer to a commit. Push it, then create a Release from it.

```bash
git tag -a v1.2.0 -m "Release 1.2.0"
git push origin v1.2.0
gh release create v1.2.0 --generate-notes ./dist/app.zip
```

## Semantic versioning

Use `MAJOR.MINOR.PATCH`: major for breaking changes, minor for new features, patch for fixes. Auto-generated release notes list merged pull requests.

Trigger a workflow on `push: tags: ['v*']` to build and publish artifacts automatically for each release.
