Git clone работает только с ssh: // git @ .., а не с git @

11

Любая идея, почему репозиторий GIT будет работать только при использовании, ssh://git@server.com/repo.gitа не также при использовании git@server.com/repo.git?

Это настройка сервера кем-то другим, поэтому я не знаю, как он был настроен, но на BitBucket или GitHub я могу просто использовать git@server.com/repo.gitего, и он работает и клонирует репозиторий по протоколу SSH. Любая идея, почему для этого сервера IY работает только при использовании ssh://git@server.com/repo.git?

Так что мне нужно добавить ssh://впереди.

Daniels
источник
Использует ли сервер альтернативный порт SSH? Лайкssh://git@server.com:2222/
7очем
Нет. 22. Как ssh://git@server.com/repo.gitработает, а пока git@server.com/repo.gitнет. Я не добавляю :portни в каких случаях. Когда я пытаюсь без, ssh://я получаю fatal: repository 'git@server.com/something/repo.git' does not exist. С ssh://git@server.com/something/repo.gitэтим работает.
Даниэльс
Некоторая проблема с конфигурацией (может быть, проблема с именем пользователя в брандмауэре?) - у меня похожая проблема с настройкой в ​​моем учреждении. Однако доступ через https работает - поэтому решение состоит в том, чтобы использовать правила перезаписи из этого потока: stackoverflow.com/questions/15589682/…
DetlevCM

Ответы:

32

Вы используете неправильный синтаксис.

Когда вы удаляете scheme://префикс, git больше не интерпретирует ваш адрес в стиле URL, а вместо этого как стиль rcp / scp. Но для адресов в стиле rcp / scp путь должен быть отделен от user @ host двоеточием: (указание порта не поддерживается). Например:

git clone daniels@server.com:repo.git

git clone git@bitbucket.com:daniels/example.git

Без двоеточия git будет интерпретировать адрес только как локальный путь.

(Вы можете увидеть более подробную информацию на странице руководства git clone или git fetch .)

user1686
источник
Ха, тайна разгадана. Вы правы. Спасибо.
Даниэльс
Я использовал сервер BitBucket (бывший Stash, тот, который вы устанавливаете на своем сервере, а не облачную версию) и просто скопировал и вставил команду GIT оттуда. По некоторым причинам они не добавляют пропавших без вести :.
Даниэльс