如何克隆名称中包含“:”的本地git存储库?

时间:2010-05-04 11:40:14

标签: git

我正在尝试克隆本地git存储库。 存储库的名称包含一个`:'。这让我和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 个答案:

答案 0 :(得分:2)

这似乎不可能。如果您阅读git-pull联机帮助页的Git网址部分,您会发现有一种特殊的语法使用'::'作为分隔符。有关此<transport>::<address>构造的更多信息,请访问git-remote-helpers联机帮助页。

至于解释除此之外的解释,似乎扩展是在git中进行的,而不是在zsh,bash或你选择的shell中。

答案 1 :(得分:1)

的作用:

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

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

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

效果更好?

  • '--'会迫使git考虑../a::b。作为路径参数,而不是选项。
  • --local可能有助于让Git使用正确的传输机制(简单的本地副本)

为了确保您可以尝试使用colon character的八进制值:

git clone -- "../a\072\072b" .

答案 2 :(得分:0)

不知道,但也许像Tortoise这样的UI客户端有效吗?

似乎git理解你的a :: b就像一个主机名:port ...

你试过“”?