From: Jeff King Date: Mon, 13 Apr 2009 11:21:04 GMT Subject: [PATCH 5/5] docs/checkout: clarify what "non-branch" means Message-ID: <20090413112104.GE15982@coredump.intra.peff.net> In-Reply-To: <20090413110947.GA15647@coredump.intra.peff.net> In the code we literally stick "refs/heads/" on the front and see if it resolves, so that is probably the best explanation. Signed-off-by: Jeff King --- I hope this helps a little bit with Mark's confusion. But while writing it, I really think it would be a simpler rule to say "if it's in refs/heads/, then it's a branch" (which is similar to what Mark suggested earlier). So "git checkout refs/heads/master" would be identical to "git checkout master". That would require a code change, though. Documentation/git-checkout.txt | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt index 4a1fb53..ad4b31e 100644 --- a/Documentation/git-checkout.txt +++ b/Documentation/git-checkout.txt @@ -114,11 +114,11 @@ the conflicted merge in the specified paths. "merge" style, shows the original contents). :: - Branch to checkout (when no paths are given); may be any object - ID that resolves to a commit. Defaults to HEAD. -+ -When this parameter names a non-branch (but still a valid commit object), -your HEAD becomes 'detached'. + Branch to checkout; if it refers to a branch (i.e., a name that, + when prepended with "refs/heads/", is a valid ref), then that + branch is checked out. Otherwise, if it refers to a valid + commit, your HEAD becomes "detached" and you are no longer on + any branch (see below for details). + As a special case, the `"@\{-N\}"` syntax for the N-th last branch checks out the branch (instead of detaching). You may also specify -- 1.6.3.rc0.148.g141203.dirty