git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [1.8.0] git checkout refs/heads/foo checks out branch foo

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Feb 7, 2011, 22:00 UTC
Message-ID
<20110207220030.GA19357@elie>
In-Reply-To
<AANLkTinmqTi4cYbR6PtSxt6itCvFQDuT_sE1tjx45a3h@mail.gmail.com>
Sverre Rabbelier wrote:
> Now _that_ is an excellent usability improvement, assuming we want to
> encourage detaching HEAD... do we?
Yes.
-- 8<
Subject: commit: document --detach synonym for "git checkout foo^{commit}"

For example, one might use this when making a temporary merge to test that two topics work well together.

This patch just documents the option. It is not meant for application without an implementation and tests for the option.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 Documentation/git-checkout.txt |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt
index 880763d..698ae6c 100644
--- a/Documentation/git-checkout.txt
+++ b/Documentation/git-checkout.txt
@@ -9,6 +9,7 @@ SYNOPSIS
 --------
 [verse]
 'git checkout' [-q] [-f] [-m] [<branch>]
+'git checkout' [-q] [-f] [-n] [--detach] [<commit>]
 'git checkout' [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] [<start_point>]
 'git checkout' [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>...
 'git checkout' --patch [<tree-ish>] [--] [<paths>...]
@@ -22,9 +23,10 @@ branch.
 
 'git checkout' [<branch>]::
 'git checkout' -b|-B <new_branch> [<start point>]::
+'git checkout' [--detach] [<commit>]::
 
 	This form switches branches by updating the index, working
-	tree, and HEAD to reflect the specified branch.
+	tree, and HEAD to reflect the specified branch or commit.
 +
 If `-b` is given, a new branch is created as if linkgit:git-branch[1]
 were called and then checked out; in this case you can
@@ -115,6 +117,13 @@ explicitly give a name with '-b' in such a case.
 	Create the new branch's reflog; see linkgit:git-branch[1] for
 	details.
 
+--detach::
+	Rather than checking out a branch to work on it, check out a
+	commit for inspection and discardable experiments.
+	This is the default behavior of "git checkout <commit>" when
+	<commit> is not a branch name.  See the "DETACHED HEAD" section
+	below for details.
+
 --orphan::
 	Create a new 'orphan' branch, named <new_branch>, started from
 	<start_point> and switch to it.  The first commit made on this
@@ -204,7 +213,7 @@ leave out at most one of `A` and `B`, in which case it defaults to `HEAD`.
 
 
 
-Detached HEAD
+DETACHED HEAD
 -------------
 
 It is sometimes useful to be able to 'checkout' a commit that is
-- 
1.7.4
Previous: Sverre RabbelierNext: Junio C Hamano
Message 5 of 18 in “[1.8.0] git checkout refs/heads/foo checks out branch foo”
  1. Martin von ZweigbergkFeb 7, 2011
  2. Junio C HamanoFeb 7, 2011
  3. Jeff KingFeb 7, 2011
  4. Sverre RabbelierFeb 7, 2011
  5. Jonathan NiederFeb 7, 2011
  6. Junio C HamanoFeb 7, 2011
  7. Jeff KingFeb 7, 2011
  8. Jonathan NiederFeb 8, 2011
  9. Jeff KingFeb 8, 2011
  10. Martin von ZweigbergkFeb 8, 2011
  11. checkout: introduce --detach synonym for "git checkout foo^{commit}"Jonathan Nieder, Feb 8, 2011
  12. Jonathan NiederFeb 8, 2011
  13. 0/3 checkout: introduce --detach synonym for "git checkout foo^{commit}"Jonathan Nieder, Feb 8, 2011
  14. 1/3 checkout: split off a function to peel away branchname argJonathan Nieder, Feb 8, 2011
  15. 2/3 checkout: introduce --detach synonym for "git checkout foo^{commit}"Jonathan Nieder, Feb 8, 2011
  16. 3/3 checkout: rearrange update_refs_for_switch for clarityJonathan Nieder, Feb 8, 2011
  17. Heiko VoigtFeb 7, 2011
  18. Martin von ZweigbergkFeb 8, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.