В попытке решить проблему, с которой я столкнулся: при управлении веб-сайтом в Windows с помощью git я установил Cygwin openssh и Git для Windows (msysgit) на сервере Windows 2008 (назовем это myserver
).
У меня есть пустая настройка git-репо по пути cygwin /var/git/example.git
, который соответствует c:\cygwin\var\git\example.git
в Windows.
У меня есть пользователь git
, у которого есть права на папки репо.
Я могу войти в систему с помощью git
, используя аутентификацию на основе ключей, до myserver
с моей рабочей станции XP, используя Putty. У меня открыт ключ в конкурсе.
Я могу использовать пути в стиле cygwin в Putty, например, cd /var/git/example.git
возвращает меня к моему голому репо.
Однако у меня проблема при использовании Git Bash (MingW32) и попытке сделать:
git clone ssh://git@myserver/var/git/example.git
Я получаю ответ:
Cloning into example...
fatal: '/var/git/example.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Когда я пытаюсь:
git clone ssh://git@myserver:c:/cygwin/var/git/example.git
Работает, репо клонируется.
Cloning into example...
remote: Counting objects: 384, done.
remote: Compressing objects: 100% (288/288), done.
remote: Total 384 (delta 85), reused 359 (delta 73)
Receiving objects: 100% (384/384), 51.72 MiB | 201 KiB/s, done.
Resolving deltas: 100% (85/85), done.
Однако, если я тогда попытаюсь нажать, используя:
cd example
git push
Не удалось:
git: '/cygwin/var/git/example.git' is not a git command. See 'git --help'.
fatal: The remote end hung up unexpectedly
Итак, как мне сделать так, чтобы я мог толкать / тянуть / клонировать? В идеале я хотел бы иметь возможность использовать стиль пути Cygwin, например. git clone ssh://git@myserver/var/git/example.git
.