In the simplest of terms, a branch is the record of all the commits that have been done. Every [:WorkingTree:working tree] has a branch, but it may be in a different location. The actual revisions produced by the commits are stored in a repository, which is sometimes shared with other branches.
A frequent activity done by users within the working tree of a branch is to [:Merge:merge] another branch. In this way users can share changes between two branches -- even if the branch is run by someone else.
Bazaar's default behavior is to put the repository, branch, and working tree all in the same place. This combination is called a "standalone tree". If there is no tree, it is called a "[:StandaloneBranch:standalone branch]". If the repository is shared with other branches, it is called a "[:RepositoryBranch:repository branch]". A working tree in a different location from its branch is called a "checkout".