致命的:我不处理协议

时间:2013-06-29 00:13:50

标签: git heroku

当我尝试推送到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

not able to push to heroku | git error: cannot handle https | heroku + git submodule needs authentication | error: "fatal: I don't handle protocol ``git` when using bundle install | Git/GitHub can't push to master

5 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分: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"]文件中删除整个config部分(实际上是最后5行)。

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

答案 2 :(得分:1)

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

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

它有原始配置信息:

[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

如果你看那里的网址,你会发现它有这样的东西 git@heroku.com:yourhttp(url)这就是问题,你在配置中有你的应用程序网址

在heroku上的应用程序页面上你会发现git repo的uri将url改为那个并且事情应该运行良好

答案 3 :(得分:0)

哈德同样的问题,因为它与这里提到的其他解决方案不同。

使用SourceTree并在添加远程网址时,意外添加了额外的前缀空间。

我的配置(错误)

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

正确

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

答案 4 :(得分:0)

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

解决方案是删除粘贴内容的第一个字符以及之前的字符并重新输入。