Checking Out Branches
As mentioned earlier in this chapter, your working directory can reflect only one branch at a time. To start working on a different branch, issue the git checkout command. Given a branch name, git checkout makes the branch the new, current working branch. It changes your working tree file and directory structure to match the state of the given branch. However, as you’ll see, Git builds in safeguards to keep you from losing data you haven’t yet committed.
In addition, git checkout gives you access to all states of the repository going back from the tip of the branch to the beginning of the project. This is because, as you may recall from Chapter 6, each commit captures a snapshot of the complete repository state at a given moment in time.
A Basic Example of Checking Out a Branch
Suppose you wanted to shift gears from the
dev branch in the previous section’s
example and instead devote your attention to fixing the problem
associated with the bug/pr-1 branch.
Let’s look at the state of the working directory before and after
git checkout:
$git branchbug/pr-1 bug/pr-2 * dev master $git checkout bug/pr-1Switched to branch "bug/pr-1" $git branch* bug/pr-1 bug/pr-2 dev master
The files and directory structure of your working tree have been
updated to reflect the state and contents of the new branch,
bug/pr-1. However, in order to see the files that your working directory has changed to match the state at the tip of that branch, you must use a regular Unix command such ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access