'X' не похоже на репозиторий git (я уверен, что путь правильный)
Я хочу иметь возможность работать из дома, клонируя репозиторий git, который существует на моем рабочем столе, на мой ноутбук. Обе системы работают под управлением msysgit в оболочке cygwin. Обе системы используют ssh cygwin.
Если я подключусь по ssh к этому серверу, я смогу увидеть репозиторий по пути /cygdrive/d / Projects / TheProject
$ ssh TheDesktop
MyUser@TheDesktop's password: ...I enter the password, see the MOTD, and I'm in...
$ cd /cygdrive/d/Projects/TheProject
...See the git repository here. Even see the current branch in the prompt...
Но я пытаюсь клонировать, и это не удается:
$ git clone ssh://TheDesktop/cygdrive/d/Projects/TheProject
Cloning into TheProject
MyUser@TheDesktop's password: ...I enter the password...
fatal: '/cygdrive/d/Projects/TheProject' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Я также попытался симлинковать репозиторий с моей домашней папкой:
$ ssh TheDesktop
MyUser@TheDesktop's password: ...I enter the password...
$ ln -s /cygdrive/d/Projects/TheProject .
$ exit
$ git clone ssh://TheDesktop/~/TheProject
Cloning into TheProject
MyUser@TheDesktop's password: ...I enter the password...
fatal: '/cygdrive/d/Projects/TheProject' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Я, конечно, вижу это. ошибок здесь очень много, и они почти всегда относятся к плохому пути. Но я действительно уверен, что мой путь верен. У меня такое чувство, что это как-то связано с окружающей средой, в которую ssh был встроен на рабочем столе, но я действительно не могу понять, что именно. Какие еще вещи могут вызвать эту ошибку?
3 ответа:
git clone TheDesktop:cygdrive/d/Projects/TheProject TheProject
Должен исправить это
Если ssh-сервер не находится под cygwin, замените путь windows:
cygpath --mixed /cygdrive/d/Projects/TheProject
Это мой опыт, что с Cygwin передает неправильный стиль путь к msysgit. Msysgit не понимает /cygdrive и поэтому портит его, за исключением с единственным аргументом в командной строке, в этом случае cygwin bash, похоже, выполняет преобразование волшебным образом.
Однако, нет такой вещи будет верно для gitshell более чем с Cygwin sshd демона. Я предполагаю, что вы пытались что-то близкое к
git clone TheDesktop:D:/Projects/TheProject TheProject
Если бы это не сработало, я бы посмотрел на
git daemon # wasn't supported on Windows last time I checked
Или
git bundle create repo.bundle --all # receive it on the remote scp TheDesktop:repo.bundle git clone repo.bundle TheProject
Вам нужно клонировать сам репозиторий, а не связанное с ним рабочее дерево:
$ git clone ssh://TheDesktop/cygdrive/d/Projects/TheProject/.git TheProject
Должно работать
Это может быть связано с тем, что git хочет найти "cygdrive/d/Projects/TheProject" относительно вашей папки входа.
В первом примере вы входите через ssh, а затем делаете " cd / cygdrive/...", что является абсолютным путем, а не относительным.
Изменение папки входа ssh, чтобы указать, например, на папку проектов, может помочь вам. А также сократить путь ssh:)