X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Documentation%2Fgit-checkout.txt;h=fbdbadc74fbe558285323353b7aa006f3cfd559b;hb=162f41292167a800432fc6bbacfcd9f93a90b0c8;hp=556e733c9b3c38c887ff6656363d7d92cca5a16a;hpb=cf1e6d1ec55264272be8b7f0c276a069d2aac69a;p=git.git diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt index 556e733c..fbdbadc7 100644 --- a/Documentation/git-checkout.txt +++ b/Documentation/git-checkout.txt @@ -7,15 +7,18 @@ 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