Start here. This is the direct spoken answer to practice first.
Why this question matters
Tags and release branches solve different release-management problems. Choosing deliberately keeps production versions traceable while still allowing controlled maintenance.
A tag marks a specific commit, often the exact commit deployed as a version. A release branch is a branch used to stabilize or maintain a release line. I would use tags to identify what is running in production. I would use release branches when we need to prepare a release separately from ongoing main development or maintain hotfixes for a released version.