What is the difference between tags and branches?

What is the difference between tags and branches?

A tag represents a version of a particular branch at a moment in time. A branch represents a separate thread of development that may run concurrently with other development efforts on the same code base.