как клонировать локальный репозиторий git, имя которого содержит `: '? - PullRequest
1 голос
/ 04 мая 2010

Я пытаюсь клонировать локальный репозиторий git. Имя репозитория содержит `: '. Это сбивает с толку и меня и мерзавца. Я получаю следующую ошибку:

~/work/c% git clone ../a::b .
Initialized empty Git repository in /home/user/work/c/.git/
ssh: Could not resolve hostname ../a: Name or service not known
fatal: The remote end hung up unexpectedly

Как бы вы избежали `: '? Сейчас я просто меняю имя исходного репозитория: -)

Я использую zshell ...

Ответы [ 3 ]

2 голосов
/ 04 мая 2010

Кажется, что это не должно быть возможно. Если вы прочтете раздел Git URLs на справочной странице git-pull , вы увидите, что существует специальный синтаксис, который использует «::» в качестве разделителя. Дополнительную информацию об этой конструкции <transport>::<address> можно найти на странице git-remote-helpers .

Что касается определения другой интерпретации, похоже, что расширение происходит в git, а не в zsh, bash или вашей оболочке по вашему выбору.

1 голос
/ 04 мая 2010

ли:

git clone -- ../a::b .

git clone -- "../a::b" .

git clone --local -- "../a::b" .

лучше работает?

  • '--' заставит git задуматься ../a::b. в качестве параметров пути, а не в качестве параметров.
  • --local может помочь заставить Git использовать правильный транспортный механизм (простая локальная копия)

Просто чтобы быть уверенным, вы также можете попробовать использовать восьмеричное значение символа двоеточия :

git clone -- "../a\072\072b" .
0 голосов
/ 04 мая 2010

Не знаю, но, возможно, с клиентским интерфейсом вроде Tortoise это работает?

Кажется, git понимает ваш a :: b как имя хоста: порт ...

Вы пробовали с ""?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...