diff options
author | Junio C Hamano <junkio@cox.net> | 2005-10-18 01:29:27 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-10-18 01:29:27 -0700 |
commit | 4aaa702794447d9b281dd22fe532fd61e02434e1 (patch) | |
tree | aa0a562dc1d28c6b4d6bc3f0ece8b96ab74ddb84 /Documentation/git-checkout.txt | |
parent | 4bfe1199eabb41eb1f1d67f4ee24df028eb21300 (diff) | |
download | git-4aaa702794447d9b281dd22fe532fd61e02434e1.tar.gz git-4aaa702794447d9b281dd22fe532fd61e02434e1.tar.xz |
git-checkout: revert specific paths to either index or a given tree-ish.
When extra paths arguments are given, git-checkout reverts only those
paths to either the version recorded in the index or the version
recorded in the given tree-ish.
This has been on the TODO list for quite a while.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'Documentation/git-checkout.txt')
-rw-r--r-- | Documentation/git-checkout.txt | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt index f753c149a..b7bb1b4c7 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 <new_branch>] [<branch>] +'git-checkout' [-f] [-b <new_branch>] [<branch>] [<paths>...] DESCRIPTION ----------- -Updates the index and working tree to reflect the specified branch, -<branch>. Updates HEAD to be <branch> or, if specified, <new_branch>. + +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 ------- @@ -29,6 +41,30 @@ 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 +$ 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 +------------ + + Author ------ Written by Linus Torvalds <torvalds@osdl.org> |