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

为什么这个git clone命令失败了?,git,Git,正在尝试使用git clone命令。我的理解(如果错误,请更正)是,为了托管Git存储库,您只需要一台运行ssh的机器以及位于允许位置的项目/存储库 我的git存储库位于运行ssh的OSX系统上。我正在尝试在Windows XP系统上克隆它。我在XP机器上安装了Git Bash。在gitbash(MINGW)控制台中,我可以用ssh连接到Mac上,没有问题 但是,git clone失败 $ git clone username@host:~/project/path/contactdb Init

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

我的git存储库位于运行ssh的OSX系统上。我正在尝试在Windows XP系统上克隆它。我在XP机器上安装了Git Bash。在gitbash(MINGW)控制台中,我可以用ssh连接到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上安装其他东西吗?

您需要在具有要克隆的Git存储库的计算机上安装Git;另外,在执行ssh时,git upload pack必须位于远程计算机上的$PATH中。当直接通过ssh连接到远程计算机时,是否会得到如下响应:

$ ssh username@host git-upload-pack --help
usage: git upload-pack [--strict] [--timeout=nn] <dir>
(当然,shell的名称取决于远程端使用的是什么)


还有一个可能的问题(虽然在您的情况下可能不是这样)是远程计算机配置错误,使用交互式shell进行ssh连接,或者在连接时提供一些消息,或者设置交互式变量,如臭名昭著的$CDPATH环境变量。

我在mac os上也遇到了同样的问题,我通过将git上传包从/usr/local/git/bin复制到/bin解决了这个问题。

另一种方法是:


git克隆--上传包/path/to/git上传包ssh://user@host/~/project/path/contactdb

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

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

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

如果使用SSH,请确保所有SSH密钥都已正确设置

我用过

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


这对我很有用。

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

我尝试了所有方法,验证了我的密钥、路径和工具版本。尽管如此,我还是无法使用“gitshell”、“gitgui”和“tortoisegit”从github克隆回购协议

我下载并安装了“”(需要“VS2012更新2 CTP”),并且能够从Visual Studio内部克隆回购协议:

  • 单击“主菜单->视图->团队资源管理器”
  • 单击“团队资源管理器->连接到团队项目”
  • 单击“团队资源管理器->本地Git存储库部分->克隆”
  • 输入要克隆的Git Repo的URL(黄色框)
  • 输入或浏览要克隆到的本地文件夹
  • 单击“克隆”

过了一会儿,回购协议被克隆了。我用这种方法成功克隆了六个回购协议,其中msysgit、github和tortoisegit都未能按预期工作。

我也遇到了同样的问题,在没有删除过期证书的情况下,它开始工作。这次我唯一不同的做法是将连接到代理网络的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.

只有在附加了
.git
的远程目录名时,您才需要尝试使用
.git
扩展名。谢谢,我想知道这一点。如果您是通过ssh连接的,请使用:git clonessh://user@主机/~/project/path/contactdbAnd。。。确保您可以使用
ssh连接sshuser@host
Ethan当前通过SSH连接的方式是正确的。这并不能解决问题,他需要向他的环境添加路径。为什么要到处移动二进制文件?它已经包含在路径中,但仍然存在问题,我不知道为什么,所以我将它移动到了垃圾箱中,并且可以正常工作。也许你是对的,但这正是我在电脑里解决这个问题的方法。你救了我一天!我完全忘了在远程机器上安装“git core”。非常感谢亲爱的。它救了我一天。这一次对我很有效,让我抓狂。不知道为什么会起作用
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.