Git-сервер под Windows, использующий FreeSSHd
Я пытаюсь настроить git в качестве сервера в Windows.
- Установил freesshd, настроил его и проверил ssh с машины linux, все работает.
- Скачал Git для Windows и установил его, в PATH добавили git\bin и git\libexec\git-core
- Сделал голый репозиторий в d:\GitRepo\u7.git
когда я пытаюсь
git clone serhiy@192.168.75.2:d:/gitrepo/u7.git
Я хорошо знаю "плохой символ длины строки: фата".
Но печатать
ssh 192.168.75.2 git-receive-pack d:/gitrepo/u7.git
У меня есть юридический ответ
00900000000000000000000000000000000000000000 возможности ^{} отчет-состояние delete-refs side-band-64k quiet ofs-delta agent=git/1.8.1.msysgit.1 0000
Что может быть не так? Как я понял, я не могу добраться до нужной папки, пока "git clone", я попробовал ssh://, sh.exe вместо cmd.exe, попробовал cmd /K "d: && cd \gitrepo", чтобы установить текущий папка и ничего. Но у меня работает git-receive-pack d:/gitrepo/u7.git. Нужно ли указывать текущую папку для хранилища?
ОБНОВЛЕНИЕ: Прочитав последний пост в этой теме, я создал файлы с указанием и клонированный проект
Создайте файл gup.sh со строкой
git-upload-pack.exe $*
и grp.sh с
git-receive-pack.exe $*
на сервере!
Потом клон репозитория
git clone -u 'sh gup.sh' ssh://serhiy@192.168.75.2/d/gitrepo/u7.git
и установить некоторые конфиги
git config --global remote.origin.uploadpack 'sh gup.sh'
git config --global remote.origin.receivepack 'sh grp.sh'
Кажется, это работает под Linux. Под окнами я не могу просто войти, запретить Permession.
ОБНОВЛЕНИЕ: Поскольку я перешел на использование ключей RSA, все работает, поэтому у меня есть:
- Windows Server 2003
- На нем установлен FreeSHHd
- Доступ с компьютеров Linux и Windows к Git-репозиторию с использованием аутентификации RSA.
- В качестве оболочки на сервере я использую git's sh.exe
- Самый странный способ клонировать хранилище в первый раз git clone -u 'sh gup.sh' ssh://192.168.75.2/d/gitrepo/u7.git