Git клон / тянуть через локальную сеть
Я пытаюсь клонировать / вытащить хранилище на другом ПК с помощью Ubuntu Quantal. Я делал это на Windows раньше, но я не знаю, в чем проблема в Ubuntu. Я попробовал это:
git clone file:////pc-name/repo/repository.git
git clone file:////192.168.100.18/repo/repository.git
git clone file:////user:pass@pc-name/repo/repository.git
git clone smb://c-pc/repo/repository.git
git clone //192.168.100.18/repo/repository.git
Всегда получаю:
Cloning into 'intranet'...
fatal: '//c-pc/repo/repository.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
или же
fatal: repository '//192.168.100.18/repo/repository.git' does not exist
Больше:
- Другой компьютер имеет имя пользователя и пароль
- Это не проблема сети, я могу получить доступ и проверить его.
- Я только что установил git
apt-get install git
(зависимости установлены) - Я запускаю git из терминала (я не использую git-shell)
Что вызывает это и как это исправить? Любая помощь будет отличной!
ОБНОВИТЬ
Я клонировал репо на Windows, используя git clone //192.168.100.18/repo/intranet.git
без проблем. Итак, репо доступно и существует! Может быть, проблема связана с учетными данными пользователя?
3 ответа
Это зависит от того, как у вас настроен сервер для обслуживания контента.
Если по ssh:
git clone user@192.168.100.18:repo/repository.git
или если веб-сервер предоставляет контент (http или https)
https://user@192.168.100.18/repo/repository.git
или если доступно через путь к файлу:
git clone file://path/to/repo
или если на сервере запущен демон git:
git clone git://192.168.100.18/repo
Руководство для git-clone
говорит:
Git natively supports ssh, git, http, https, ftp, ftps, and rsync protocols
Обратите внимание, что SMB нет в списке.
При беге git
в Windows //host/path
Синтаксис работает, потому что ОС поддерживает его изначально - удаленные пути SMB могут использоваться везде, где можно использовать локальный путь. Это не относится к Unix, где SMB - вещь чуждая, и //
эквивалентно /
в алгоритме разрешения пути.
смонтировать удаленную файловую систему, тогда у вас будет возможность обращаться к ней с помощью пути в стиле Unix, который git
(и любой другой инструмент в системе) понимает.
Для получения информации о монтировании smbfs: https://askubuntu.com/questions/137011/how-to-mount-a-samba-shared-folder-ubuntu-x-ubuntu
Эта проблема похожа на https://stackoverflow.com/questions/5200181/how-to-git-clone-a-repo-in-windows-from-other-pc-within-the-lan. Возможно, административный ресурс помогает решить проблему (например, //pc-name/c$/path/to/repo)