X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=Documentation%2Fgit-checkout.txt;h=be54a0299fb2b6849993aa27d18c829ce91e7e00;hb=c7f72248e3da96299d925aece0f00a46f5f86334;hp=3ad9760a4d6949837c1e186402c9810b59a0138d;hpb=c636d0e2bcffdbd55c096944561d9ac470da600e;p=git.git diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt index 3ad9760a4..be54a0299 100644 --- a/Documentation/git-checkout.txt +++ b/Documentation/git-checkout.txt @@ -8,8 +8,8 @@ git-checkout - Checkout a branch or paths to the working tree SYNOPSIS -------- [verse] -'git-checkout' [-q] [-f] [[--track | --no-track] -b [-l]] [-m] [] -'git-checkout' [] ... +'git checkout' [-q] [-f] [--track | --no-track] [-b [-l]] [-m] [] +'git checkout' [] [--] ... DESCRIPTION ----------- @@ -21,9 +21,13 @@ specified, . Using -b will cause to be created; in this case you can use the --track or --no-track options, which will be passed to `git branch`. +As a convenience, --track will default to create a branch whose +name is constructed from the specified branch name by stripping +the first namespace level. + 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`), or +the index file (i.e. it runs `git checkout-index -f -u`), or from a named commit. In this case, the `-f` and `-b` options are meaningless and giving either of them results in an error. argument can be @@ -49,16 +53,27 @@ OPTIONS -t:: --track:: - When creating a new branch, set up configuration so that git-pull + When creating a new branch, set up configuration so that 'git-pull' will automatically retrieve data from the start point, which must be a branch. Use this if you always pull from the same upstream branch into the new branch, and if you don't want to use "git pull " explicitly. This behavior is the default when the start point is a remote branch. Set the branch.autosetupmerge configuration variable to `false` if you want - git-checkout and git-branch to always behave as if '--no-track' were + 'git-checkout' and 'git-branch' to always behave as if '--no-track' were given. Set it to `always` if you want this behavior when the start-point is either a local or remote branch. ++ +If no '-b' option was given, the name of the new branch will be +derived from the remote branch, by attempting to guess the name +of the branch on remote system. If "remotes/" or "refs/remotes/" +are prefixed, it is stripped away, and then the part up to the +next slash (which would be the nickname of the remote) is removed. +This would tell us to use "hack" as the local branch when branching +off of "origin/hack" (or "remotes/origin/hack", or even +"refs/remotes/origin/hack"). If the given name has no slash, or the above +guessing results in an empty name, the guessing is aborted. You can +exlicitly give a name with '-b' in such a case. --no-track:: Ignore the branch.autosetupmerge configuration variable. @@ -112,7 +127,7 @@ current branch and directly point at the commit named by the tag (`v2.6.18` in the above example). You can use usual git commands while in this state. You can use -`git-reset --hard $othercommit` to further move around, for +`git reset --hard $othercommit` to further move around, for example. You can make changes and create a new commit on top of a detached HEAD. You can even create a merge by using `git merge $othercommit`.