One use of version control is to support multiple independent lines of development, which are called branches. Branches are used for maintaining separate “stable” and “development” versions of a program, and for developing unrelated features in isolation from one another.
VC's support for branch operations is currently fairly limited. For decentralized version control systems, it provides commands for updating one branch with the contents of another, and for merging the changes made to two different branches (see Merging). For centralized version control systems, it supports checking out different branches and committing into new or different branches.