summaryrefslogtreecommitdiff
path: root/Documentation/git-checkout.txt
blob: 9442c66b18bb2a1dc578a9ff604fcb0009e3ed1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
git-checkout(1)
===============

NAME
----
git-checkout - Checkout and switch to a branch.

SYNOPSIS
--------
'git-checkout' [-f] [-b <new_branch>] [<branch>] [<paths>...]

DESCRIPTION
-----------

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.


OPTIONS
-------
-f::
	Force an re-read of everything.

-b::
	Create a new branch and start it at <branch>.

<new_branch>::
	Name for the new branch.

<branch>::
	Branch to checkout; may be any object ID that resolves to a
	commit. Defaults to HEAD.


EXAMPLE
-------

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 <1>
$ git checkout master~2 Makefile <2>
$ rm -f hello.c
$ git checkout hello.c <3>

<1> switch branch
<2> take out a file out of other commit
<3> or "git checkout -- hello.c", as in the next example.
------------

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
------------


Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the gitlink:git[7] suite