# Unable to clone empty repositories remotely

3 messages from 2008-11-25 to 2008-11-26. Participants: Hannu Koivisto, Christian MICHON.
Thread: https://gitlist.dev/t/16466

## Hannu Koivisto, 2008-11-25 21:05

Subject: Unable to clone empty repositories remotely
Message-ID: <837i6rplcd.fsf@kalahari.s2.org>
URL: https://gitlist.dev/e/837i6rplcd.fsf%40kalahari.s2.org

```
Greetings,

mkdir test
cd test
git init --bare --shared=group
cd ..
git clone test test2

works, though clone says it cannot checkout, which is expected.
This is nevertheless very useful when you create a shared
repository for a new project; you can then create a personal clone
and start adding stuff to it.  If, however, you normally work on
another machine and want to have your personal clone there
(i.e. git clone ssh://therepomachine/somewhere/test), cloning
doesn't work at all (tested with git 1.6.0.3.525.ge32c2 in Cygwin):

Initialized empty Git repository in /cygdrive/c/temp/test/.git/
fatal: no matching remote head

This behaviour isn't documented by either git-init(1) or
git-clone(1).  I think it would be very convenient if this worked
for the reasons mentioned above.  I'm sure you could create your
personal repository with git init and then git remote add the
shared repository to it but that's much more difficult.

-- 
Hannu

```

## Christian MICHON, 2008-11-25 21:33

Subject: Re: Unable to clone empty repositories remotely
Message-ID: <46d6db660811251333u583468e0ma2846796ca9df68d@mail.gmail.com>
URL: https://gitlist.dev/e/46d6db660811251333u583468e0ma2846796ca9df68d%40mail.gmail.com
In-Reply-To: <837i6rplcd.fsf@kalahari.s2.org>

```
On Tue, Nov 25, 2008 at 10:05 PM, Hannu Koivisto <azure@iki.fi> wrote:
> Greetings,
>
> mkdir test
> cd test
> git init --bare --shared=group
> cd ..
> git clone test test2
>
> works, though clone says it cannot checkout, which is expected.
> This is nevertheless very useful when you create a shared
> repository for a new project; you can then create a personal clone
> and start adding stuff to it.  If, however, you normally work on
> another machine and want to have your personal clone there
> (i.e. git clone ssh://therepomachine/somewhere/test), cloning
> doesn't work at all (tested with git 1.6.0.3.525.ge32c2 in Cygwin):
>
> Initialized empty Git repository in /cygdrive/c/temp/test/.git/
> fatal: no matching remote head
>
> This behaviour isn't documented by either git-init(1) or
> git-clone(1).  I think it would be very convenient if this worked
> for the reasons mentioned above.  I'm sure you could create your
> personal repository with git init and then git remote add the
> shared repository to it but that's much more difficult.
>
> --
> Hannu
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

how about creating at least 1 empty commit before any cloning ?

wouldn't this solve the problem ?

-- 
Christian
--
http://detaolb.sourceforge.net/, a linux distribution for Qemu with Git inside !

```

## Hannu Koivisto, 2008-11-26 13:13

Subject: Re: Unable to clone empty repositories remotely
Message-ID: <834p1ur5p2.fsf@kalahari.s2.org>
URL: https://gitlist.dev/e/834p1ur5p2.fsf%40kalahari.s2.org
In-Reply-To: <46d6db660811251333u583468e0ma2846796ca9df68d@mail.gmail.com>

```
"Christian MICHON" <christian.michon@gmail.com> writes:

> On Tue, Nov 25, 2008 at 10:05 PM, Hannu Koivisto <azure@iki.fi> wrote:
>> Greetings,
>>
>> mkdir test
>> cd test
>> git init --bare --shared=group
>> cd ..
>> git clone test test2
>>
>> works, though clone says it cannot checkout, which is expected.
>> This is nevertheless very useful when you create a shared
>> repository for a new project; you can then create a personal clone
>> and start adding stuff to it.  If, however, you normally work on
>> another machine and want to have your personal clone there
>> (i.e. git clone ssh://therepomachine/somewhere/test), cloning
>> doesn't work at all (tested with git 1.6.0.3.525.ge32c2 in Cygwin):
>>
>> Initialized empty Git repository in /cygdrive/c/temp/test/.git/
>> fatal: no matching remote head
>>
>> This behaviour isn't documented by either git-init(1) or
>> git-clone(1).  I think it would be very convenient if this worked
>> for the reasons mentioned above.  I'm sure you could create your
>> personal repository with git init and then git remote add the
>> shared repository to it but that's much more difficult.
>>
>> --
>> Hannu
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe git" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
> how about creating at least 1 empty commit before any cloning ?
>
> wouldn't this solve the problem ?

No, it wouldn't.  I don't doubt that there are workarounds - I
mentioned one possibility myself.  Admittedly your workaround may
be more convenient than mine, but it's still a workaround.

Now that I think of it, I wonder if one could go one step further
in shared repository creation usability and make it possible to do
that git init step remotely as well (I mean, directly with a
one-step git command instead of ssh host "cd /repos ; mkdir foo ;
cd foo; git init ...").  Since git init doesn't take non-option
arguments, I suppose it could be extended to accept ssh (and file)
urls for this purpose?  And maybe an option to create a
corresponding local clone at the same time.

-- 
Hannu

```
