X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Documentation%2Fgit-checkout.txt;h=fbdbadc74fbe558285323353b7aa006f3cfd559b;hb=ae448e3854d8b6e7e37aa88fa3917f5dd97f3210;hp=df9a6186746ba8c11bcc518f9d25fcfcabf7a93c;hpb=1be0659efca4a1f69c851f95563e930d70d8baf2;p=git.git diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt index df9a6186..fbdbadc7 100644 --- a/Documentation/git-checkout.txt +++ b/Documentation/git-checkout.txt @@ -3,19 +3,22 @@ git-checkout(1) NAME ---- -git-checkout - Checkout and switch to a branch. +git-checkout - Checkout and switch to a branch SYNOPSIS -------- -'git-checkout' [-f] [-b ] [-m] [] [...] +[verse] +'git-checkout' [-f] [-b [-l]] [-m] [] +'git-checkout' [-m] [] ... DESCRIPTION ----------- -When are not given, this command switches branches, by +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, . +specified, . Using -b will cause to +be created. When are given, this command does *not* switch branches. It updates the named paths in the working tree from @@ -29,17 +32,25 @@ given paths before updating the working tree. OPTIONS ------- -f:: - Force an re-read of everything. + Force a re-read of everything. -b:: - Create a new branch and start it at . + Create a new branch named and start it at + . The new branch name must pass all checks defined + by gitlink:git-check-ref-format[1]. Some of these checks + may restrict the characters allowed in a branch name. + +-l:: + Create the new branch's ref log. This activates recording of + all changes to made the branch ref, enabling use of date + based sha1 expressions such as "@{yesterday}". -m:: - If you have local modifications to a file that is - different between the current branch and the branch you - are switching to, the command refuses to switch - branches, to preserve your modifications in context. - With this option, a three-way merge between the current + If you have local modifications to one or more files that + are different between the current branch and the branch to + which you are switching, the command refuses to switch + branches in order to preserve your modifications in context. + However, with this option, a three-way merge between the current branch, your working tree contents, and the new branch is done, and you will be on the new branch. + @@ -63,26 +74,26 @@ 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> +$ git checkout master <1> +$ git checkout master~2 Makefile <2> $ rm -f hello.c -$ git checkout hello.c <3> - +$ 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. ------------- +<3> restore hello.c from HEAD of current branch + -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: +If you have an unfortunate branch that is named `hello.c`, this +step would be confused as an instruction to switch to that branch. +You should instead write: + ------------ $ git checkout -- hello.c ------------ . After working in a wrong branch, switching to the correct -branch you would want to is done with: +branch would be done using: + ------------ $ git checkout mytopic