X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;ds=sidebyside;f=Documentation%2Fgit-checkout.txt;h=9442c66b18bb2a1dc578a9ff604fcb0009e3ed1e;hb=1e2ccd3abc8f5d96244806f753568493c3e77d4c;hp=f753c149a5f2c45bd57742475e9d81a25c309a2c;hpb=7fe2fc79358673a909d71e62d3f80ffe0f525fce;p=git.git diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt index f753c149..9442c66b 100644 --- a/Documentation/git-checkout.txt +++ b/Documentation/git-checkout.txt @@ -7,12 +7,24 @@ git-checkout - Checkout and switch to a branch. SYNOPSIS -------- -'git-checkout' [-f] [-b ] [] +'git-checkout' [-f] [-b ] [] [...] DESCRIPTION ----------- -Updates the index and working tree to reflect the specified branch, -. Updates HEAD to be or, if specified, . + +When are not given, this command switches branches, by +updating the index and working tree to reflect the specified +branch, , and updating HEAD to be or, if +specified, . + +When 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. argument can be +used to specify a specific tree-ish to update the index for the +given paths before updating the working tree. + OPTIONS ------- @@ -29,6 +41,34 @@ OPTIONS 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