当我尝试推送到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
答案 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会在粘贴内容的开头插入一个不可见的额外字符。
解决方案是删除粘贴内容的第一个字符以及之前的字符并重新输入。