Using Branches

There may be many different branches within a repository at any given time, but there is at most one “active” or “current” branch. The active branch determines what files are checked out in the working directory. Furthermore, the current branch is often an implicit operand in Git commands, such as the target of the merge operation. By default, master is the active branch, but you can make any branch the current branch.

Tip

In Chapter 6, I presented commit graph diagrams containing several branches. Keep this graph structure in mind when you manipulate branches because it helps establish the elegant and simple object model underlying Git’s branches.

A branch allows the content of the repository to diverge in many directions, one per branch. Once a repository forks at least one branch, each commit is applied to one branch or the other, whichever is active.

Each branch in a specific repository must have a unique name, and the name always refers to the most recent revision committed on that branch. The most recent commit on a branch is called the tip, or head, of the branch.

Git doesn’t keep information about where a branch originated. Instead, the branch name moves incrementally forward as new commits are made on the branch. Older commits must therefore be named by their hash or via a relative name such as dev~5. If you want to keep track of a particular commit—because it represents a stable point in the project, say, or is a version you want to test—you ...

Get Version Control with Git now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.