We've talked about branching briefly: what it is and what it's for. Let's now talk about how to use it. Branching provides isolation. A branch isolates changes to source code from other changes (not just "other's changes") to source code. Once branched code is worked on in isolation, changes are then merged back into the parent branch (or the trunk if that's the parent branch). This can be visualized with the following diagram:
While the branch may have been merged back into the trunk, work could continue on that branch and, presumably, merged back into the trunk again at a later date. There are a few reasons why you'd want to have that isolation.
In the most general sense, there are various reasons to isolate certain changes to source code from other changes to source code. Dependent code requires dependencies to have a certain degree of stability. When code is being modified or redesigned you can no longer guarantee that stability and risk breaking the dependent...