为什么这个git clone命令失败了?

时间:2009-06-16 01:10:10

标签: git

尝试使用git clone命令。我的理解(请纠正,如果错误)是为了托管一个Git存储库,你只需要一台运行ssh的机器和一个位于允许位置的项目/存储库。

我在运行ssh的OS X系统上安装了我的git存储库。我正在尝试在Windows XP系统上克隆它。我在XP机器上安装了Git Bash。在Git bash(MINGW)控制台中,我可以毫不费力地进入Mac。

但是,git clone失败了......

$ git clone username@host:~/project/path/contactdb
Initialized empty Git repository in 
  c:/Documents and Settings/Administrator/My Documents/projects/contactdb/.git/
bash: git-upload-pack: command not found
fatal: The remote end hung up unexpectedly

使用和不使用.git扩展名尝试:

$ git clone username@host:~/project/path/contactdb

$ git clone username@host:~/project/path/contactdb.git

我是否需要在Mac上安装其他东西?

9 个答案:

答案 0 :(得分:21)

您需要在具有要克隆的Git存储库的计算机上安装Git;在执行ssh时,git-upload-pack也必须在远程机器上的$ PATH中。当直接ssh到远程机器时,你得到类似下面的响应:

$ ssh username@host git-upload-pack --help
usage: git upload-pack [--strict] [--timeout=nn] <dir>

或以下(错误的)回复:

$ ssh username@host git-upload-pack --help
bash: git-upload-pack: command not found

(当然shell的名称取决于远程端使用的是什么)。

也可能出现问题(尽管可能不在你的情况下)是配置错误的远程机器,以便使用交互式shell进行ssh连接,或者在连接时提供一些消息,或者设置交互式变量,如臭名昭着的$ CDPATH环境变量。

答案 1 :(得分:6)

我通过在远程计算机的〜/ .bashrc文件中添加以下行来解决问题:

export PATH=$PATH:"/usr/local/bin:/usr/local/git/bin"

问题是$ PATH没有为非交互式会话包含/ usr / local / git / bin。 〜/ .bashrc的添加纠正了这个问题。

答案 2 :(得分:4)

另一种方法是:

git clone --upload-pack / path / to / git-upload-pack ssh:// user @ host /〜/ project / path / contactdb

答案 3 :(得分:3)

我用过

  

git clone mysite.net:/path/to/site

对我有用。

答案 4 :(得分:2)

我在mac os上遇到了同样的问题,我通过将/ usr / local / git / bin中的git-upload-pack复制到/ bin来解决这个问题。

答案 5 :(得分:0)

如果您使用SSH,请确保您也正确设置了所有SSH密钥。

http://help.github.com/mac-set-up-git/

答案 6 :(得分:0)

对于msysgit,当路径包含空格时,使用-u选项提供git-upload-pack的路径不起作用,因为似乎不支持引号(单,双)(1.7.11.msysgit.1) 。 将它添加到我的PATH工作(C:\ Program Files(x86)\ Git \ libexec \ git-core)。 [但是,我的设置还有其他问题]

答案 7 :(得分:0)

我尝试了一切,我验证了我的密钥,路径和工具版本。不过,我无法使用“git shell”“git gui”和“tortoise git”克隆来自github的回购。

我下载并安装了“Visual Studio Tools for Git”(需要“VS2012 Update 2 CTP”)并能够从Visual Studio内部克隆回购:

  • 点击“主菜单 - &gt;查看 - &gt;团队资源管理器”
  • 点击“团队资源管理器 - &gt;连接到团队项目”
  • 点击“团队资源管理器 - &gt;本地Git存储库部分 - &gt;克隆”
  • 输入Git Repo到克隆的网址(黄色框)
  • 输入或浏览要克隆的本地文件夹
  • 点击“克隆”

过了一会儿,克隆了回购。我已经成功克隆了六打回购邮件,其中msysgit,github和tortoisegit都没能按预期工作。

答案 8 :(得分:0)

我遇到了同样的问题而没有删除过期的证书所有的伤心它开始工作。我这次唯一不同的做法是将WiFi连接到代理网络切换到我的私人移动热点。然后我在终端

中运行以下命令
$ git clone https://my-login@bitbucket.org/project-folder/project-name.git

然后它开始克隆并请求密码..

Cloning into 'project-name'...
Password for 'https://my-login@bitbucket.org':

已下载存储库..

remote: Counting objects: 2449, done.
remote: Compressing objects: 100% (1244/1244), done.
remote: Total 2449 (delta 1388), reused 1999 (delta 1070)
Receiving objects: 100% (2449/2449), 768.56 KiB | 101.00 KiB/s, done.
Resolving deltas: 100% (1388/1388), done.