git push heroku master 因“HTTP 400 curl 22 The requested URL returned error”而失败

Posted

技术标签:

【中文标题】git push heroku master 因“HTTP 400 curl 22 The requested URL returned error”而失败【英文标题】:git push heroku master fails by "HTTP 400 curl 22 The requested URL returned error" 【发布时间】:2019-02-08 01:34:59 【问题描述】:

我正在尝试推送仅显示“你好,世界”的 Rails 应用程序。 然后我遇到了如下错误。 我想知道如何解决这个问题。

$git push heroku master 枚举对象:88 个,完成。 计数对象:100% (88/88),完成。 Delta 压缩最多使用 4 个线程。 压缩对象:100% (73/73),完成。 写入对象:100% (88/88),22.29 KiB | 1.71 MiB/s,完成。 总计 88 个(增量 2),重复使用 0 个(增量 0) 错误:RPC 失败; HTTP 400 curl 22 请求的 URL 返回错误:400 Bad Request 致命:远端意外挂断 一切都是最新的

我的程序如下。 1.创建如下所示的rails应用程序。rails new sample 2.修复路由和application_controller显示你好,世界。 3.更改 Gemfile。 3-1.在开发测试组声明sqlite3 gem 'sqlite3' 3-2.在生产组中声明pg gem 'pg', '0.20.0' 4.执行bundle install --without production 5.执行git add . 6.执行git commit -m "initial commit for heroku" 7.通过rails s确认它是否有效并访问localhost:3000 8.执行heroku login并输入id和密码。 9.执行heroku keys:add,SSH密钥由该操作创建。 10.执行heroku create 11.执行git push heroku master然后我得到错误

每个程序的版本如下。 * Rails 5.1.6 * heroku/7.14.1 win32-x64 node-v10.9.0

这个错误是什么?如何避免这个错误? 如果您需要更多信息,请告诉我。


我在下面添加了我的 gem 文件。

source 'https://rubygems.org'

# git_source(:github) do |repo_name|
#  repo_name = "#repo_name/#repo_name" unless repo_name.include?("/")
#  "https://github.com/#repo_name.git"
# end

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.1.6'
# Use Puma as the app server
gem 'puma', '~> 3.7'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for javascript assets
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

gem 'rails_12factor'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.2'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development, :test do
  # Use sqlite3 as the database for Active Record
  gem 'sqlite3'
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '~> 2.13'
  gem 'selenium-webdriver'
end

group :development do
  # Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
  gem 'web-console', '>= 3.3.0'
end

group :production do
  gem 'pg', '0.20.0'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

【问题讨论】:

这看起来是同一个问题。这个问题的答案有什么运气吗? ***.com/questions/19449800/… 感谢您的评论。我根据链接试过了,但是不行……我用的是git版本2.18.0.windows,你觉得我应该用低版本的git吗? 【参考方案1】:

导航到存储库后,运行以下命令将缓冲区增加到 500MB:

git config http.postBuffer 524288000

【讨论】:

感谢您的回复。我做到了,但我得到了同样的错误......你有什么想法吗? 添加这个 gem gem "rails_12factor" 然后 $bundle install 然后 $git add 。 $git commit -m "add gem" $git push heroku master 让我知道这是否有效! 我试过了,但结果是一样的。我的 gem 文件有问题吗? heroku 键:添加。这是我知道的唯一可能给你权限被拒绝错误的原因。 $git remote set-url heroku git@heroku.com:testapp.git 然后 $heroku keys:add 似乎可以解决您的问题 感谢您的帮助。我重新创建了应用程序和 ssh 密钥,但我不能……这可能是我的环境有问题。【参考方案2】:

如果它对任何人有帮助,我在推送到 Azure 时遇到了同样的错误。原来我已经填满了我的应用服务存储配额。 我删除了一堆大文件,问题就解决了。

【讨论】:

【参考方案3】:

就我而言,我必须将远程 URL 更改为使用 git: 协议而不是 https:,而且我还必须创建一个公钥。

获取当前网址:

git remote get-url heroku

假设你的 URL 类似于https://git.heroku.com/your-repo-here.git,你应该使用这个命令来使用git: 协议:

git remote set-url heroku git@heroku.com:your-repo-here.git

创建公钥:

heroku keys:add

参考链接:

https://***.com/a/6059231/679240 https://***.com/a/19466075/679240

【讨论】:

以上是关于git push heroku master 因“HTTP 400 curl 22 The requested URL returned error”而失败的主要内容,如果未能解决你的问题,请参考以下文章

git push 与 git push heroku master

HEROKU - 无法运行 git push heroku master [重复]

蒸汽:git push heroku master 失败

git push heroku master:Heroku push 被拒绝,没有检测到 Cedar 支持的应用程序

运行 git heroku push master 时出现致命错误

git push heroku master错误权限被拒绝(公钥)[重复]