blob: b7bb1b4c74ad3f0e06ddf23487b7735cb321952b [file] [log] [blame]
git-checkout - Checkout and switch to a branch.
'git-checkout' [-f] [-b <new_branch>] [<branch>] [<paths>...]
When <paths> are not given, this command switches branches, by
updating the index and working tree to reflect the specified
branch, <branch>, and updating HEAD to be <branch> or, if
specified, <new_branch>.
When <paths> are given, this command does *not* switch
branches. It updates the named paths in the working tree from
the index file (i.e. it runs `git-checkout-index -f -u`). In
this case, `-f` and `-b` options are meaningless and giving
either of them results in an error. <branch> argument can be
used to specify a specific tree-ish to update the index for the
given paths before updating the working tree.
Force an re-read of everything.
Create a new branch and start it at <branch>.
Name for the new branch.
Branch to checkout; may be any object ID that resolves to a
commit. Defaults to HEAD.
The following sequence checks out the `master` branch, reverts
the `Makefile` to two revisions back, deletes hello.c by
mistake, and gets it back from the index.
$ git checkout master
$ git checkout master~2 Makefile
$ rm -f hello.c
$ git checkout hello.c
If you have an unfortunate branch that is named `hello.c`, the
last step above would be confused as an instruction to switch to
that branch. You should instead write:
$ git checkout -- hello.c
Written by Linus Torvalds <>
Documentation by Junio C Hamano and the git-list <>.
Part of the gitlink:git[7] suite