【问题标题】:"Git clone" on Windows 10. I get the prompt "[port number] is not a git command"Windows 10 上的“Git 克隆”。我收到提示“[端口号] 不是 git 命令”
【发布时间】:2021-02-08 16:45:05
【问题描述】:

我在 Windows 10 上使用 Git,我对一个错误感到非常沮丧,我不仅在 Windows shell 上,而且在 PowerShell、Git Bash 和 Cygwin 终端上也遇到了错误。

我想像这样克隆一个 Gerrit 存储库:

git clone "ssh://[username]@[host]:[port_number]/repository"

而且我总是收到以下错误消息

git: '[port number]' is not a git command. See git --help

例如(不是真正的代码,但非常相似):

git clone "ssh://aruiz@swrepo4:29418/testing/ecutests"

我明白了

git: '29418' is not a git command. See git --help

为什么 Windows 解释器不断将端口号理解为 git 参数,这超出了我的理解。无论如何,我想问一下你们中是否有人知道造成这种情况的原因。不幸的是,我在互联网上找不到任何其他人遇到同样的问题。

2020 年 8 月 12 日更新:终于成功了!这是我更改的内容,我相信这是导致问题的原因:环境变量“GIT_SSH”指向 git.exe。我将其更改为 ssh.exe (C:\Users\AppData\Local\Programs\Git\usr\bin\ssh.exe)。我也更新到了最后一个 Git 版本:2.29.2.windows.2

【问题讨论】:

  • 查看确切的命令会很有帮助。我知道您可能不想显示用户名和主机名,但也许您可以显示带有示例值的命令(如userexample.com)而不是[username][host]。我的猜测是您正在使用的某些值中有一些 shell 元字符(尽管双引号 应该 避免这种情况)。
  • 假设它看起来像这样(虽然不完全是) git clone "ssh://aruiz@swrepo4:29418/testing/ectests"
  • 请把它放在问题中。而且我尝试复制并粘贴该命令并没有收到该错误,只是“ssh:无法解析主机名swrepo4”。您确定在任何用户名、主机、端口号或存储库中都没有有趣的字符吗?如果您键入 exactly git clone "ssh://aruiz@swrepo4:29418/testing/ecutests",您会得到同样的错误吗?如果不是,请在问题中包含产生错误消息的确切命令,以及错误消息的确切文本。您应该能够在不泄露敏感信息的情况下复制它。
  • 我按照您的要求修改了问题。另外,有关更多信息:我的老板确实在他的计算机上运行了这个命令并且它确实有效,所以我的会话中一定发生了一些奇怪的事情......
  • 明确地说,当您将问题中的确切命令输入 git bash 和 Cygwin 终端时,您是否收到该确切消息? git --version 的输出是什么? type git? printf "%s\n" git clone "ssh://aruiz@swrepo4:29418/testing/ecutests" ?

标签: git syntax windows-10 git-clone


【解决方案1】:

但是为什么在git clone-命令中需要双引号(")?你不需要这个。尝试如下,不带双引号

git clone ssh://<username>@<gerrit-server>:29418/project-name.git

这样,端口号(在 Gerrit 中默认侦听端口 29418 以进行 SSH 访问)将被识别为 git 命令

【讨论】:

  • 为什么去掉引号可以解决问题?在 bash 中,ssh://&lt;username&gt;@&lt;gerrit-server&gt;:29418/project-name.git 中没有 shell 元字符,因此git 命令应该看到完全相同的内容,带或不带双引号。 (对于 Windows cmd 和 powershell 可能会有所不同,但 OP 说问题也发生在 bash 上。)
  • @KeithThompson -> 请阅读问题:“...我在 windows shell 上得到不仅的错误,而且在PowerShellGit BashCygwin 终端。”那里的 OP 从未说过,它只是发生在 bash 中......
  • 我知道它不会在 bash 上发生。我的观点是,鉴于我们掌握的信息,没有理由认为删除双引号会解决 关于 bash 的问题。我确信问题出在用户的实际命令中,我们还没有看到; OP 只向我们展示了一个摘要。
  • 是的,如果没有 real-命令,我们将无能为力。但我从未在 OP 的 example-command 中看到 git clone 中的双引号
  • 1.删除引号时我得到完全相同的提示 2. 命令如下所示: git clone "ssh://aruiz@swrepo4:29418/testing/ectests"
猜你喜欢
  • 2021-03-11
  • 2018-06-22
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2010-09-18
  • 1970-01-01
相关资源
最近更新 更多