threads / discuss / 29054

Status after 'git clone --no-checkout' ?

Subject: Status after 'git clone --no-checkout' ?

## tl;dr

3 messages between Nov 30, 2011 and Dec 2, 2011.

replies: 2people: 2as markdown or json

norbert.nemec· Nov 30, 2011, 13:02 UTC · lore
Hi there,

what exactly is the status after 'git clone --no-checkout'? Is there any straightforward way how one could end up in this state starting from a regularly checked out repository?

A somewhat related question:

'git checkout' without any further options serves to move from the aforementioned special state to a regular checked out state. Otherwise it never seems to do anything. Are there any other situations where 'git checkout' on its own would have any effect?

Thanks for any insight on this!
Norbert Nemec
Jeff King· Dec 1, 2011, 19:00 UTC · re: norbert.nemec · lore

Re: Status after 'git clone --no-checkout' ?

On Wed, Nov 30, 2011 at 02:02:22PM +0100, norbert.nemec wrote:
> what exactly is the status after 'git clone --no-checkout'? Is there
> any straightforward way how one could end up in this state starting
> from a regularly checked out repository?

You have a HEAD which points to some actual commit, but no index or working tree. I don't think there is a particular name for this state.

You can get something similar in an existing repo by deleting all of the working tree files and removing .git/index.

> 'git checkout' without any further options serves to move from the
> aforementioned special state to a regular checked out state.
> Otherwise it never seems to do anything. Are there any other
> situations where 'git checkout' on its own would have any effect?

By itself, I don't think so. But you can use "git checkout -f" to discard changes in the index and working tree, setting them back to the state in HEAD.

At one point, some people used "git checkout" as a no-op, because it would print the "ahead/behind" information with respect to the upstream. These days, that information is part of "git status", so I suspect people use that instead.

-Peff
norbert.nemec· Dec 2, 2011, 07:53 UTC · re: Jeff King · lore

Re: Status after 'git clone --no-checkout' ?

Thanks a lot for this concise explanation -- exactly what I was hoping for!
Am 01.12.11 20:00, schrieb Jeff King:
Show 27 quoted lines
> On Wed, Nov 30, 2011 at 02:02:22PM +0100, norbert.nemec wrote:
>
>> what exactly is the status after 'git clone --no-checkout'? Is there
>> any straightforward way how one could end up in this state starting
>> from a regularly checked out repository?
>
> You have a HEAD which points to some actual commit, but no index or
> working tree. I don't think there is a particular name for this state.
>
> You can get something similar in an existing repo by deleting all of the
> working tree files and removing .git/index.
>
>> 'git checkout' without any further options serves to move from the
>> aforementioned special state to a regular checked out state.
>> Otherwise it never seems to do anything. Are there any other
>> situations where 'git checkout' on its own would have any effect?
>
> By itself, I don't think so. But you can use "git checkout -f" to
> discard changes in the index and working tree, setting them back to the
> state in HEAD.
>
> At one point, some people used "git checkout" as a no-op, because it
> would print the "ahead/behind" information with respect to the upstream.
> These days, that information is part of "git status", so I suspect
> people use that instead.
>
> -Peff

← back to recent threads