From 4aaa702794447d9b281dd22fe532fd61e02434e1 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 18 Oct 2005 01:29:27 -0700 Subject: 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 --- Documentation/git-checkout.txt | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) (limited to 'Documentation/git-checkout.txt') 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 ] [] +'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,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 -- cgit v1.2.1