9

当我尝试推送到 Heroku 时,我收到以下错误消息。

[first_app]$git push heroku master
fatal: I don't handle protocol 'git@heroku.com:yourhttp'

然后我查看了我拥有的不同版本的 Heroku,似乎不止一个,所以我尝试删除它,但收到了另一条错误消息。

[first_app]$ git remote set-url --delete heroku git@heroku.com:yourhttp://still-lake-3136.herokuapp.com/.git
fatal: Will not delete all non-push URLs

我搜索了类似的错误消息,但找不到任何可以修复的错误消息。非常感谢您的帮助。

这是我的配置文件:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
[remote "origin"]
    url = git@github.com:wongsteven/first_app.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "heroku"]
    url = git@heroku.com:yourhttp://still-lake-3136.herokuapp.com/.git
    fetch = +refs/heads/*:refs/remotes/heroku/*
[heroku]
    remote = heroku

无法推送到heroku | git 错误:无法处理 https | heroku + git 子模块需要身份验证| 错误:“致命:我在使用捆绑安装时不处理协议 `git` | Git/GitHub 无法推送到 master

4

5 回答 5

11

在 Git 存储库的 url 周围加上引号(这对我有用。我使用的是 Windows 8.1)

于 2014-07-29T11:48:54.567 回答
3

错误在您的配置中。这一行:

[remote "heroku"]
    url = git@heroku.com:yourhttp://still-lake-3136.herokuapp.com/.git

完全是胡说八道。我不知道那条线是怎么结束的。您一定是以错误的方式从某个地方复制粘贴了某些内容。我的猜测是它应该是这样的:

[remote "heroku"]
    url = git@heroku.com:still-lake-3136.git

如果这不起作用,您应该真正按照此处的说明启动远程存储库:

https://devcenter.heroku.com/articles/git

在这种情况下,您可以在继续执行这些说明之前从文件中删除整个[remote "heroku"]部分(实际上是最后 5 行) 。config

这两个之一(编辑行或重新初始化存储库)应该可以解决您的问题。

于 2013-07-03T04:05:42.003 回答
1

Git 使用不同的协议来“推送”代码,这可能是 https/ssh 等

您可能在存储库的根目录中有 .git/config 文件

它具有 origin 的配置信息:

[remote "origin"]
#url = ssh://git@bitbucket.org/user/repo.git
url=git@heroku.com:myheroku.git
fetch = +refs/heads/*:refs/remotes/origin/*

如果你看到这个 url 信息有 git@something:repo.com

如果您查看那里的 url,您会看到它有这样的内容 git@heroku.com:yourhttp(url) 这是问题所在,您的应用程序 url 在配置中

在 heroku 上的应用程序页面上,您会找到 git repo 的 uri 将 url 更改为那个,事情应该运行良好

于 2013-06-29T00:51:31.567 回答
0

有同样的问题,但其原因与此处提到的其他解决方案不同。

我正在使用 SourceTree,并且在添加远程 url 时,意外添加了额外的前缀空间。

我的配置(错误)

url = " ssh://url.com/path/repo.git"

正确的

url = ssh://url.com/path/repo.git
于 2017-02-01T08:53:31.853 回答
0

我已经多次看到这个问题,而且总是在 Windows 计算机上。当您从剪贴板粘贴时,Windows 会在您粘贴的内容的开头插入一个不可见的额外字符。

解决方法是将粘贴内容的第一个字符连同之前的字符一起删除,然后重新键入。

于 2020-11-02T08:17:16.100 回答