为什么 Git 有时会给我 "fatal: Unable to find remote helper for 'https'" 这样的错误

Why Git sometimes give me error like "fatal: Unable to find remote helper for 'https'"

我使用 git 1 个月了。我正在将我的 Android 个项目推送到 Bitbucket。

有时我会收到类似

的错误
fatal: Unable to find remote helper for 'https'

但正如我所说,我使用 git 1 个月实际上它 运行 不错。
我搜索了很多次。我正在使用 Windows 10 Pro 和 git-2-12.2.2

尝试并确保在 CMD 会话中重置(用于测试)您的路径(同样,只是为了测试,在那个 CMD 会话中):

set GH=C:\path\to\git2.12.2.2
set PATH=C:\windows\system32;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%

然后再尝试推送。

如果这不起作用,请尝试 setting up and register an ssh key 然后,作为 解决方法,使用 ssh url:

git remote set-url origin git@bitbucket.org:username/repo.git

当我使用 windows/cmd 或 powershell 时出现该错误,但在同一台机器上使用 gitbash 时我没有出现错误。尝试使用 gitbash,无论如何都会为您提供更好的格式。如上所述设置路径和远程 url 更可能是解决问题根源的可靠方法,但我没有必要这样做。我意识到这不是修复错误消息的解决方案,而只是使用我认为已经安装在您的机器上的替代程序。

[[如果您使用的是嵌入在 Android Studio 中的 git] 问题是默认 git.exe 程序 运行 以及 Android Studio 不支持 https。 要解决此问题,您应该安装 git 并替换默认的。执行以下步骤:

  1. 安装最新的 git 来自:https://git-scm.com/download/win
  2. 在 Android Studio 中:文件 > 设置 > 版本控制 > Git。在 "Path to Git execute" 中,指向 git.exe 的位置(例如 C:\Program Files\Git\bin\git.exe)。然后运行测试。

如果一切正常,将弹出消息显示 git 已成功执行,版本为 Git。

就是这样。再次尝试拉取代码!

发生此错误的另一种方式是拼写错误:额外的 :.

$ git remote add testing file::/rubbish
$ git fetch testing

fatal: Unable to find remote helper for 'file'

$ git remote remove testing

该命令应该看起来像这样(只有一个冒号)

$ git remote add testing file:/rubbish

对我来说,@VonC 方法几乎奏效了,我还需要将 %GH%\cmd 添加到 PATH

set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%GH%\cmd;%PATH%

另请注意,我一直在使用 Git 安装 Visual Studio

我在使用 GitHub 页面进行部署时遇到了类似的问题。我会 运行 npm run deploy 并得到同样的错误。

我遵循的教程建议我在设置项目时使用 HTTPS URL:

$ git remote add origin https://github.com/git-name/repo-name.git

相反,我发现使用 SSH URL 解决了错误:

$ git remote add origin git@github.com:git-name/repo-name.git

虽然有一个 , I saw that somebody else had solved a similar issue using SSH URL 我自己试了一下。工作得很好!

要检查和更改您的远程来源,请执行以下命令:

$ git remote -v
$ git remote set-url origin git@github.com:git-name/repo-name.git