【问题标题】:Why is this git clone command failing?为什么这个 git clone 命令失败了?
【发布时间】:2010-11-03 04:58:22
【问题描述】:

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

我的 git 存储库位于运行 ssh 的 OS X 系统上。我正在尝试在 Windows XP 系统上克隆它。我在 XP 机器上安装了 Git Bash。在 Git bash (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 clone ssh://user@host/~/project/path/contactdb
  • 并且...确保您可以使用ssh user@host 与 ssh 连接
  • Ethan 目前通过 SSH 连接的方式是正确的。

标签: git


【解决方案1】:

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

$ 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 环境变量。

【讨论】:

  • 你拯救了我的一天!我完全忘了在远程机器上安装“git-core”。
【解决方案2】:

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

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

问题在于 $PATH 不包括用于非交互式会话的 /usr/local/git/bin。 ~/.bashrc 的添加解决了这个问题。

【讨论】:

  • 非常感谢亲爱的。它拯救了我的一天。
【解决方案3】:

另一种方法是:

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

【讨论】:

    【解决方案4】:

    我用过

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

    这对我有用。

    【讨论】:

      【解决方案5】:

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

      【讨论】:

      • 这不能解决问题,他需要将 PATH 添加到他的环境中。为什么要移动二进制文件?
      • 它已经包含在PATH中,仍然有问题,我不知道为什么,所以我把它移到了bin中,它可以工作。也许你是对的,但这正是我在电脑上解决这个问题的方法。
      【解决方案6】:

      我遇到了同样的问题,并且没有删除过期的证书,它开始工作的所有悲伤。这次我唯一不同的是将连接到代理网络的 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.
      

      【讨论】:

      • 这个对我有用*挠我的头。不知道为什么会这样
      【解决方案7】:

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

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

      【讨论】:

        【解决方案8】:

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

        【讨论】:

          【解决方案9】:

          我尝试了所有方法,验证了我的密钥、路径和工具版本。尽管如此,我还是无法使用“git shell”“git gui”和“tortoise git”从 github 克隆一个 repo。

          我下载并安装了“Visual Studio Tools for Git”(需要“VS2012 Update 2 CTP”),并且能够从 Visual Studio 中克隆 repo:

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

          过了一会儿,repo 被克隆了。我以这种方式成功克隆了六个 repo,其中 msysgit、github 和 tortoisegit 都未能按预期工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-02-01
            • 1970-01-01
            • 2021-09-13
            • 2018-02-13
            • 1970-01-01
            • 2021-12-06
            • 2012-08-13
            • 2011-08-08
            相关资源
            最近更新 更多